1. 程式人生 > >【TeeChart Pro ActiveX教程】(四):軸控制—關鍵領域

【TeeChart Pro ActiveX教程】(四):軸控制—關鍵領域

TeeChart Pro將自動為您定義所有Axis標籤,並提供足夠的靈活性來定製您可能具有的任何特定要求。TeeChart Pro提供真正的多軸。它們可在設計或執行時使用,併為Axis定義提供無數可能性和靈活性。有關詳細資訊,請參閱本教程中的部分。

(一)Scales

將Series資料新增到圖表時,會自動設定軸刻度。您可以使用Axis屬性在設計時或執行時更改預設值。

teechart

非日期時間資料

新增新系列時,圖表編輯器的“Axis”頁面的“Scales”部分將顯示“Automatic”和其他灰色選項。顯示的所有值均為數字。

teechart

日期時間資料

當系列在系列,常規頁面上將日期時間設定為true(對於該軸)時,圖表編輯器的軸頁面的“Scales”部分將顯示“Automatic”和其他灰色顯示的選項。值顯示為日期時間值。

自動選擇最佳軸刻度範圍以適合您的資料。如果您開啟自動關閉比例部分將ungrey選項,您可以更改軸值。重要的是,請記住從頁面左側的軸列表中選擇要配置的軸。 將行系列新增到圖表中新增一個命令按鈕,其中包含以下程式碼:

Dim t As Integer
For t = 0 To 40
  With TChart1.Series(0)
    .Add CInt((Rnd) * t), "", vbRed
  End With
Next t

在按鈕中執行程式碼將繪製一個包含40個隨機值的Line Series。在設計時轉到圖表編輯器。在“Axis”頁面的“Bottom Axis”部分中,將“Automatic”設定為“off”。您現在可以配置軸刻度的最大值和最小值。再次執行程式碼將顯示值,具體取決於您為Axis配置的值。使用滑鼠右鍵可以滾動檢視剩餘值。

按程式碼設定軸刻度

您可以使用以下程式碼更改執行時的最大值和最小值:

With TChart1.Axis.Bottom
  .Automatic = False
  .Maximum = 36
  .Minimum = 5
End With

您可以將Axis scale Maximum和Minimum設定為自動單獨。例如:

With TChart1.Axis.Bottom
  .AutomaticMaximum = True
  .AutomaticMinimum = False
  .Minimum = 5
End With

偏移

您可以將軸設定為具有最小和最大比例的偏移(以畫素為單位)。

TChart1.Axis.Left.MaximumOffset = 4 
TChart1.Axis.Left.MinimumOffset = 4

(二)Increment

您可以定製Axis的間隔。從Axis頁面的Scales部分選擇Desired Increment組合框,並新增所需的增量。您可以在執行時通過程式碼更改它:

With TChart1.Axis.Bottom
  .Increment = 20
End With

日期時間資料

如果您的資料是datetime(您可以通過轉到Series,General頁面將資料設定為系列的datetime),Chart,Axis頁面,scales部分將顯示日期時間範圍。從Desired Increment組合框中顯示的範圍中選擇增量。 新增一些示例資料

For t = 1 To 25
   With TChart1.Series(0)
       .AddXY DateValue("2017, 11, " & t), Rnd(t) * t, "", vbRed
   End With
Next t

在執行時更改增量:

With TChart1.Axis.Bottom
  .Increment = TChart1.GetDateTimeStep(dtTwoDays)
End With

注意

更改軸標籤頻率時,請記住TeeChart將根據LabelsSeparation屬性的設定避免標籤重疊。這意味著如果標籤頻率太高而不適合標籤,那麼TeeChart將分配“最適合”。更改標籤角度和標籤分離是2個選項,可幫助您安裝所需的標籤。

Titles

標題在Axis頁面的標題部分中設定。您可以更改Axis及其字型的標題文字。該角度可以從值0,90,180,270度中選擇。

Labels

有關標籤屬性的簡歷,請參閱AxisLabels類(IAxislabels介面)。

注意

更改軸標籤頻率時,請記住TeeChart將根據Labels.separation屬性的設定避免標籤重疊。這意味著如果標籤頻率太高而不適合標籤,那麼TeeChart將分配“最適合”。更改標籤角度和標籤分離是2個選項,可幫助您安裝所需的標籤。請參閱Labels.Angle屬性。

標籤格式

您可以將所有標準數字和日期格式應用於Axis標籤。“Axis”頁面的“Labels”部分包含“Values format”欄位。如果您的資料是datetime,則欄位名稱將更改為“Date time format”。在編輯器中拖動幫助“?” 在該欄位上的圖示,以獲得完整的選項列表。在執行時使用:

With TChart1.Axis.Bottom
  .Labels.ValueFormat = "#,##0.00;(#,##0.00)" 
End With

'or for datetime data

With TChart1.Axis.Bottom
  .Labels.DateTimeFormat = "dd/mmm/yy" 'Datetime
End With

MultiLine標籤

軸標籤可以顯示為多行文字而不是單行文字。使用回車符ascii字元(#13)分隔行,例

//Add the Series labels in this way and apply 'Marks' as Axis labelling style
  TChart1.Series(0).Add 1234, "New"+chr$(13)+"cars", vbRed
  TChart1.Series(0).Add 2000, "Old"+chr$(13)+"bicycles", vbBlue 

DateTime標籤的示例: 以下將在兩行文字中顯示底軸標籤,一行顯示月份和日期,第二行顯示年份: 2月28日3月1日... 1999 1999 ..

TChart1.Series(0).AddXY DateValue("28,2,1999"), 100, "", clTeeColor
TChart1.Series(0).AddXY DateValue("1,3,1999"), 200, "", clTeeColor
TChart1.Series(0).AddXY DateValue("2,3,1999"), 150, "", clTeeColor
TChart1.Series(0).XValues.DateTime = True
TChart1.Axis.Bottom.Labels.DateTimeFormat = "mm/dd hh:mm" 'space 

如果將Labels.MultiLine屬性設定為True,則軸將自動將標籤拆分為找到空格的行。

TChart1.Axis.Bottom.Labels.MultiLine = True

將標籤分為兩部分:

'mm / dd'代表第二行 'hh:mm'代表第二行

在執行時,您始終可以使用OnGetAxisLabel事件以程式設計方式將標籤拆分為行:

Private Sub TChart1_OnAfterDraw()
  TChart1.Axis.Left.Labels.TeeSplitInLines LabelText, " "
End Sub

全域性“TeeSplitInLines”過程將“LabelText”中的所有空格轉換為行分隔符(返回)。 軸標籤。角度屬性(標度旋轉角度為0度,90度,180度或270度)也可用於多線軸標籤。

自定義軸標籤

可以使用Axis事件獲得更多標籤控制元件。事件允許您啟用/停用/更改任何單個Axis標籤。以下示例修改每個Label,將文字短語放在點索引值的前面。

'set LabelStyle to 'Mark' with the TChart editor or use:-
TChart1.Axis.Bottom.Labels.Style = talMark

'OnGetaxisLabel event
Private Sub TChart1_OnGetAxisLabel(ByVal aAxis As Long, ByVal SeriesIndex As Long, ByVal ValueIndex As Long, LabelText As String)
 If aAxis = atBottom Then
   LabelText = "Period " + Str(ValueIndex)
 End If
End Sub

可以使用自定義文字和格式在特定位置修改軸標籤,而無需使用TeeChart事件,從而可以更輕鬆地在ASP方案中修改伺服器端。

Private Sub Form_Load()
Dim v As Variant
  v = Array(200, 0, 123, 300, 260, -100, 650, 400)
  TChart1.AddSeries scLine
  TChart1.Series(0).AddArray 8, v
  AddCustomLabels
End Sub

Private Sub AddCustomLabels()
  TChart1.Axis.Left.Labels.Clear
  TChart1.Axis.Left.Labels.Add 123, "Hello"
  TChart1.Axis.Left.Labels.Item(0).Font.Size = 16
    
  TChart1.Axis.Left.Labels.Add 466, "Good" & Chr(13) & "Bye"
  TChart1.Axis.Left.Labels.Item(1).Transparent = False

  TChart1.Axis.Left.Labels.Add 300, ""
  
  TChart1.Axis.Left.Labels.Add -100, ""
  With TChart1.Axis.Left.Labels.Item(3)
    .Transparent = False
    .Transparency = 50
    .Color = vbBlue
  End With
End Sub

對數標籤

正常對數標籤可以通過以下方式設定:

With TChart1.Axis.Left
 .Logarithmic = True
 .Increment = 0 ' the default
 .SetMinMax 0, 10000
 .Labels.ValueFormat = "#e+0" ' exponential format
End With

標籤將根據對數基數(預設為10)進行設定,因此,在此情況下,標籤為1,10,100,1000,10000。

Ticks和Minor

teechart

有3種刻度型別和2種類型的網格。您可以更改每個刻度和網格型別的長度,寬度和顏色。可以通過«Ticks»選項卡對Ticks及其關聯的Grid和Inner Ticks進行更改; 可以通過«Minor»選項卡更改Minor Ticks及其關聯的Grid。

With TChart1.Axis.Bottom
  .TickLength = 7
  .Ticks.Color = vbGreen
  .MinorTickCount = 10 'change number of minorticks between (major) Ticks
End With

軸位置

軸具有修改每個軸所在位置的屬性。在此示例中,軸移動了圖表寬度的50%,因此它顯示在圖表中心:

TChart1.Axis.Left.PositionPercent = 50