TeeChart Pro VCL/FMX教程(四):軸控制(上)
已加入在線訂購(gòu),現(xiàn)在搶購(gòu)可立享特別優(yōu)惠?。?!
TeeChart Pro將自動(dòng)為您定義所有Axis標(biāo)簽,并提供足夠的靈活性來(lái)定制您可能具有的任何特定要求。TeeChart Pro提供真正的多軸。這些可在設(shè)計(jì)或運(yùn)行時(shí)使用,并為Axis定義提供無(wú)數(shù)可能性和靈活性。
軸控制 - 關(guān)鍵領(lǐng)域
Series
將Series數(shù)據(jù)添加到Chart時(shí),會(huì)自動(dòng)設(shè)置軸刻度。您可以使用Axis屬性在設(shè)計(jì)時(shí)或運(yùn)行時(shí)更改默認(rèn)值。
自動(dòng)選擇最佳軸刻度范圍以適合您的數(shù)據(jù)。如果關(guān)閉“Automatic”,則“Scales”部分將激活選項(xiàng),您可以更改“axis”值。重要的是,請(qǐng)記住從頁(yè)面左側(cè)的“Axis”菜單中選擇要配置的軸。
將行系列添加到圖表中添加一個(gè)命令按鈕,其中包含以下代碼:
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;
在按鈕中運(yùn)行代碼將繪制一個(gè)包含40個(gè)隨機(jī)值的Line Series。
在設(shè)計(jì)時(shí)轉(zhuǎn)到圖表編輯器。在Axis頁(yè)面的Bottom Axis scales部分中關(guān)閉Automatic'off'。您現(xiàn)在可以配置軸刻度的最大值和最小值。再次運(yùn)行代碼將顯示值,具體取決于您為Axis配置的值。使用鼠標(biāo)右鍵可以滾動(dòng)查看剩余值。
按代碼設(shè)置軸刻度
您可以使用以下代碼在運(yùn)行時(shí)更改最大值和最小值:
With Chart1.Axes.Bottom do begin Automatic := False; Maximum := 36; Minimum ;= 5; end;
您可以將Axis scale Maximum和Minimum設(shè)置為自動(dòng)單獨(dú)。例如:
With Chart1.Axes.Bottom do begin AutomaticMaximum := True; Minimum := 5; end;
Increment
您可以定制Axis的間隔。從Axis頁(yè)面的Scales部分選擇Desired Increment組合框,并添加所需的增量。您可以在運(yùn)行時(shí)通過(guò)代碼更改它:
Chart1.Axes.Bottom.Increment := 20;
日期時(shí)間數(shù)據(jù)
如果您的數(shù)據(jù)是日期時(shí)間(您可以通過(guò)轉(zhuǎn)到“系列”,“常規(guī)”頁(yè)面將數(shù)據(jù)設(shè)置為系列的日期時(shí)間),“圖表”,“軸”頁(yè)面和“比例”部分將顯示日期時(shí)間范圍。從Desired Increment組合框中顯示的范圍中選擇 。
添加一些示例數(shù)據(jù)
for t := 1 To 25 do Series1.AddXY(EncodeDate(1998, 4, t), Random(t), '', clRed);
在運(yùn)行時(shí)更改增量:
Chart1.Axes.Bottom.Increment := DateTimeStep[dtOneWeek];
Title
標(biāo)題在Axis頁(yè)面的標(biāo)題部分設(shè)置。您可以更改Axis及其字體的標(biāo)題文本。角度可以從值0,90,180,270度中選擇。有關(guān)運(yùn)行時(shí),請(qǐng)參閱TChartAxisTitle組件。
Labels
注意:
更改軸標(biāo)簽頻率時(shí),請(qǐng)記住TeeChart將根據(jù)LabelsSeparation屬性的設(shè)置避免標(biāo)簽重疊。這意味著如果標(biāo)簽頻率太高而不適合標(biāo)簽,那么TeeChart將分配“最佳匹配”。更改標(biāo)簽角度和標(biāo)簽分離是2個(gè)選項(xiàng),可幫助您安裝所需的標(biāo)簽。請(qǐng)參閱標(biāo)簽部分和LabelsAngle屬性。
標(biāo)簽格式
您可以將所有標(biāo)準(zhǔn)數(shù)字和日期格式應(yīng)用于Axis標(biāo)簽。“軸”頁(yè)面的“標(biāo)簽”部分包含“值格式”字段。如果您的數(shù)據(jù)是datetime,則字段名稱將更改為“Date time format”。在編輯器中拖動(dòng)幫助“?” 在該字段上的圖標(biāo),以獲得完整的選項(xiàng)列表。在運(yùn)行時(shí)使用:
Chart1.Axes.Bottom.AxisValuesFormat := '#,##0.00;(#,##0.00)'; //or for Datetime data Chart1.Axes.Bottom.DateTimeFormat := 'dd/mmm/yy hh:mm:ss';
MultiLine標(biāo)簽
Axis標(biāo)簽可以顯示為多行文本而不是單行文本。使用TeeLineSeparator全局常量分隔行,該常量默認(rèn)為回車符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標(biāo)簽的示例:
以下將在兩行文本中顯示底軸標(biāo)簽,一行顯示月份和日期,第二行顯示年份: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屬性設(shè)置為T(mén)rue,則軸將自動(dòng)將標(biāo)簽拆分為找到空格的單獨(dú)行。
Chart1.Axes.Bottom.LabelsMultiLine:=True;
將標(biāo)簽分為兩部分:
'mm / dd'代表第二行
'hh:mm'代表第二行
在運(yùn)行時(shí),您始終可以使用OnGetAxisLabel事件以編程方式將標(biāo)簽拆分為行:
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屬性(標(biāo)度旋轉(zhuǎn)角度為0度,90度,180度或270度)也可用于多線軸標(biāo)簽。
自定義軸標(biāo)簽
可以使用Axis事件獲得更多標(biāo)簽控件。事件允許您激活/停用/更改任何單個(gè)Axis標(biāo)簽。以下示例修改每個(gè)Label,將文本短語(yǔ)放在點(diǎn)索引值的前面。
//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;
Ticks
有3種刻度類型。您可以更改每種刻度類型的長(zhǎng)度,寬度和顏色。如果刻度線寬度設(shè)置為1(默認(rèn)值),則可以將樣式更改為多種線型之一(點(diǎn),短劃線等)。如果width大于1,則將忽略樣式。
With Chart1.Axes.Bottom do Begin TickLength := 7; Ticks.Color := clGreen; MinorTickCount := 10; //change number of minorticks between (major) Ticks end;
軸位置
軸具有修改每個(gè)軸所在位置的屬性。在此示例中,軸移動(dòng)到圖表總寬度的50%,因此它顯示在圖表中心:
Chart1.Axes.Left.PositionPercent := 50 ;
購(gòu)買TeeChart Pro VCL/FMX正版授權(quán),請(qǐng)點(diǎn)擊“咨詢?cè)诰€客服”喲!