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

下載TeeChart Pro VCL/FMX最新版本html

TeeChart Pro將自動爲您定義全部Axis標籤,並提供足夠的靈活性來定製您可能具備的任何特定要求。TeeChart Pro提供真正的多軸。這些可在設計或運行時使用,併爲Axis定義提供無數可能性和靈活性。編程

軸控制 - 關鍵領域

Series

將Series數據添加到Chart時,會自動設置軸刻度。您能夠使用Axis屬性在設計時或運行時更改默認值。app

Teechart

自動選擇最佳軸刻度範圍以適合您的數據。若是關閉「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。字體

Teechart

在設計時轉到圖表編輯器。在Axis頁面的Bottom Axis scales部分中關閉Automatic'off'。您如今能夠配置軸刻度的最大值和最小值。再次運行代碼將顯示值,具體取決於您爲Axis配置的值。使用鼠標右鍵能夠滾動查看剩餘值。this

按代碼設置軸刻度spa

您能夠使用如下代碼在運行時更改最大值和最小值:設計

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

Teechart

您能夠將Axis scale Maximum和Minimum設置爲自動單獨。例如:3d

With Chart1.Axes.Bottom do
begin
  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 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;

Ticks

Teechart

有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 ;

查看Teechart.Net系列教程>>

相關文章
相關標籤/搜索