下载TeeChart Pro VCL/FMX最新版本html
TeeChart Pro将自动为您定义全部Axis标签,并提供足够的灵活性来定制您可能具备的任何特定要求。TeeChart Pro提供真正的多轴。这些可在设计或运行时使用,并为Axis定义提供无数可能性和灵活性。编程
将Series数据添加到Chart时,会自动设置轴刻度。您能够使用Axis属性在设计时或运行时更改默认值。app
自动选择最佳轴刻度范围以适合您的数据。若是关闭“Automatic”,则“Scales”部分将激活选项,您能够更改“axis”值。重要的是,请记住从页面左侧的“Axis”菜单中选择要配置的轴。dom
将行系列添加到图表中添加一个命令按钮,其中包含如下代码:编辑器
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。字体
在设计时转到图表编辑器。在Axis页面的Bottom Axis scales部分中关闭Automatic'off'。您如今能够配置轴刻度的最大值和最小值。再次运行代码将显示值,具体取决于您为Axis配置的值。使用鼠标右键能够滚动查看剩余值。this
按代码设置轴刻度spa
您能够使用如下代码在运行时更改最大值和最小值:设计
With Chart1.Axes.Bottom do begin Automatic := False; Maximum := 36; Minimum ;= 5; end;
您能够将Axis scale Maximum和Minimum设置为自动单独。例如:3d
With Chart1.Axes.Bottom do begin AutomaticMaximum := True; Minimum := 5; end;
您能够定制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];
标题在Axis页面的标题部分设置。您能够更改Axis及其字体的标题文本。角度能够从值0,90,180,270度中选择。有关运行时,请参阅TChartAxisTitle组件。
注意:
更改轴标签频率时,请记住TeeChart将根据LabelsSeparation属性的设置避免标签重叠。这意味着若是标签频率过高而不适合标签,那么TeeChart将分配“最佳匹配”。更改标签角度和标签分离是2个选项,可帮助您安装所需的标签。请参阅标签部分和LabelsAngle属性。
标签格式
您能够将全部标准数字和日期格式应用于Axis标签。“轴”页面的“标签”部分包含“值格式”字段。若是您的数据是datetime,则字段名称将更改成“Date time format”。在编辑器中拖动帮助“?” 在该字段上的图标,以得到完整的选项列表。在运行时使用:
Chart1.Axes.Bottom.AxisValuesFormat := '#,##0.00;(#,##0.00)'; //or for Datetime data Chart1.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 style Series1.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 event procedure TForm1.Chart1GetAxisLabel(Sender: TChartAxis; Series: TChartSeries; ValueIndex: Integer; var LabelText: String); begin if Sender = Chart1.Axes.Bottom then LabelText := 'Period ' + IntToStr(ValueIndex); end;
有3种刻度类型。您能够更改每种刻度类型的长度,宽度和颜色。若是刻度线宽度设置为1(默认值),则能够将样式更改成多种线型之一(点,短划线等)。若是width大于1,则将忽略样式。
With Chart1.Axes.Bottom do Begin TickLength := 7; Ticks.Color := clGreen; MinorTickCount := 10; //change number of minorticks between (major) Ticks end;
轴具备修改每一个轴所在位置的属性。在此示例中,轴移动到图表总宽度的50%,所以它显示在图表中心:
Chart1.Axes.Left.PositionPercent := 50 ;