【TeeChart Pro ActiveX教程】(四):軸控制—關鍵領域
TeeChart Pro將自動為您定義所有Axis標籤,並提供足夠的靈活性來定製您可能具有的任何特定要求。TeeChart Pro提供真正的多軸。它們可在設計或執行時使用,併為Axis定義提供無數可能性和靈活性。有關詳細資訊,請參閱本教程中的部分。
(一)Scales
將Series資料新增到圖表時,會自動設定軸刻度。您可以使用Axis屬性在設計時或執行時更改預設值。
非日期時間資料
新增新系列時,圖表編輯器的“Axis”頁面的“Scales”部分將顯示“Automatic”和其他灰色選項。顯示的所有值均為數字。
日期時間資料
當系列在系列,常規頁面上將日期時間設定為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
有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