TeeChart Pro VCL/FMX教程(四):轴控制(上)

TeeChart Pro将自动为您定义所有Axis标签,并提供足够的灵活性来定制您可能具有的任何特定要求。TeeChart Pro提供真正的多轴。这些可在设计或运行时使用,并为Axis定义提供无数可能性和灵活性。

下载TeeChart Pro VCL/FMX最新版本

已加入在线订购,现在抢购可立享特别优惠!!!

TeeChart Pro将自动为您定义所有Axis标签,并提供足够的灵活性来定制您可能具有的任何特定要求。TeeChart Pro提供真正的多轴。这些可在设计或运行时使用,并为Axis定义提供无数可能性和灵活性。

轴控制 – 关键领域

Series

将Series数据添加到Chart时,会自动设置轴刻度。您可以使用Axis属性在设计时或运行时更改默认值。

Teechart

自动选择最佳轴刻度范围以适合您的数据。如果关闭“Automatic”,则“Scales”部分将激活选项,您可以更改“axis”值。重要的是,请记住从页面左侧的“Axis”菜单中选择要配置的轴。

将行系列添加到图表中添加一个命令按钮,其中包含以下代码:

procedure TForm1.BitBtn1Click(Sender: TObject);var t: Integer;begin For t := 0 To 40 do   With Series1 do   begin     Add(Int(Random(t)), '', clRed);   end;end;

在按钮中运行代码将绘制一个包含40个随机值的Line Series。

Teechart

在设计时转到图表编辑器。在Axis页面的Bottom Axis scales部分中关闭Automatic’off’。您现在可以配置轴刻度的最大值和最小值。再次运行代码将显示值,具体取决于您为Axis配置的值。使用鼠标右键可以滚动查看剩余值。

按代码设置轴刻度

您可以使用以下代码在运行时更改最大值和最小值:

With Chart1.Axes.Bottom dobegin  Automatic := False;  Maximum := 36;  Minimum ;= 5;end;

Teechart

您可以将Axis scale Maximum和Minimum设置为自动单独。例如:

With Chart1.Axes.Bottom dobegin  AutomaticMaximum := True;  Minimum := 5;end;

Increment

您可以定制Axis的间隔。从Axis页面的Scales部分选择Desired Increment组合框,并添加所需的增量。您可以在运行时通过代码更改它:

Chart1.Axes.Bottom.Increment := 20;
日期时间数据

如果您的数据是日期时间(您可以通过转到“系列”,“常规”页面将数据设置为系列的日期时间),“图表”,“轴”页面和“比例”部分将显示日期时间范围。从Desired Increment组合框中显示的范围中选择 。

添加一些示例数据

for t := 1 To 25 do    Series1.AddXY(EncodeDate(1998, 4, t), Random(t), '', clRed);

在运行时更改增量:

 Chart1.Axes.Bottom.Increment := DateTimeStep[dtOneWeek];

Title

标题在Axis页面的标题部分设置。您可以更改Axis及其字体的标题文本。角度可以从值0,90,180,270度中选择。有关运行时,请参阅TChartAxisTitle组件。

Labels

注意:

更改轴标签频率时,请记住TeeChart将根据LabelsSeparation属性的设置避免标签重叠。这意味着如果标签频率太高而不适合标签,那么TeeChart将分配“最佳匹配”。更改标签角度和标签分离是2个选项,可帮助您安装所需的标签。请参阅标签部分和LabelsAngle属性。

标签格式

您可以将所有标准数字和日期格式应用于Axis标签。“轴”页面的“标签”部分包含“值格式”字段。如果您的数据是datetime,则字段名称将更改为“Date time format”。在编辑器中拖动帮助“ 在该字段上的图标,以获得完整的选项列表。在运行时使用:

Chart1.Axes.Bottom.AxisValuesFormat := '#,##0.00;(#,##0.00)';//or for Datetime dataChart1.Axes.Bottom.DateTimeFormat := 'dd/mmm/yy hh:mm:ss';
MultiLine标签

Axis标签可以显示为多行文本而不是单行文本。使用TeeLineSeparator全局常量分隔行,该常量默认为回车符ascii字符(#13)。

//Add the Series labels in this way and apply 'Marks' as Axis labelling styleSeries1.Add( 1234, 'New'+TeeLineSeparator+'cars' , clRed );Series1.Add( 2000, 'Old'+TeeLineSeparator+'bicycles' , clBlue );

DateTime标签的示例:

以下将在两行文本中显示底轴标签,一行显示月份和日期,第二行显示年份:Feb-28 Mar-1 .. 1998 1998 ..

Series1.AddXY( EncodeDate( 1998,2,28 ), 100 );Series1.AddXY( EncodeDate( 1998,3,1 ), 200 );Series1.AddXY( EncodeDate( 1998,3,2 ), 150 );Series1.XValues.DateTime := True;Chart1.Axes.Bottom.DateTimeFormat := 'mm/dd hh:mm';   { <-- space }

如果将LabelsMultiLine属性设置为True,则轴将自动将标签拆分为找到空格的单独行。

Chart1.Axes.Bottom.LabelsMultiLine:=True;

将标签分为两部分:

‘mm / dd’代表第二行
‘hh:mm’代表第二行

在运行时,您始终可以使用OnGetAxisLabel事件以编程方式将标签拆分为行:

procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);var s:string;begin    s:='abc'+TeeLineSeparator+'def';    LabelText:=ReplaceChar(s,' ',TeeLineSeparator);end;

轴LabelsAngle属性(标度旋转角度为0度,90度,180度或270度)也可用于多线轴标签。

自定义轴标签

可以使用Axis事件获得更多标签控件。事件允许您激活/停用/更改任何单个Axis标签。以下示例修改每个Label,将文本短语放在点索引值的前面。

//set LabelStyle to 'Mark' with the TChart editor or use:-Chart1.Axes.Bottom.LabelsStyle := talMark;//OnGetaxisLabel eventprocedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis;  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);begin if Sender = Chart1.Axes.Bottom then    LabelText := 'Period ' + IntToStr(ValueIndex);end;

Ticks

Teechart

有3种刻度类型。您可以更改每种刻度类型的长度,宽度和颜色。如果刻度线宽度设置为1(默认值),则可以将样式更改为多种线型之一(点,短划线等)。如果width大于1,则将忽略样式。

With Chart1.Axes.Bottom doBegin  TickLength := 7;  Ticks.Color := clGreen;  MinorTickCount := 10; //change number of minorticks between (major) Ticksend;

轴位置

轴具有修改每个轴所在位置的属性。在此示例中,轴移动到图表总宽度的50%,因此它显示在图表中心:

Chart1.Axes.Left.PositionPercent := 50 ;

查看Teechart.Net系列教程>>

购买TeeChart Pro VCL/FMX正版授权,请点击“咨询在线客服”哟!

标签:VCL图表图表控件teechart

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年4月7日
下一篇 2019年4月7日

相关推荐

发表回复

登录后才能评论