【TeeChart Pro ActiveX教程】(四):軸控制—關(guān)鍵領(lǐng)域
TeeChart Pro將自動為您定義所有Axis標(biāo)簽,并提供足夠的靈活性來定制您可能具有的任何特定要求。TeeChart Pro提供真正的多軸。它們可在設(shè)計或運(yùn)行時使用,并為Axis定義提供無數(shù)可能性和靈活性。有關(guān)詳細(xì)信息,請參閱本教程中的部分。
(一)Scales
將Series數(shù)據(jù)添加到圖表時,會自動設(shè)置軸刻度。您可以使用Axis屬性在設(shè)計時或運(yùn)行時更改默認(rèn)值。
非日期時間數(shù)據(jù)
添加新系列時,圖表編輯器的“Axis”頁面的“Scales”部分將顯示“Automatic”和其他灰色選項。顯示的所有值均為數(shù)字。
日期時間數(shù)據(jù)
當(dāng)系列在系列,常規(guī)頁面上將日期時間設(shè)置為true(對于該軸)時,圖表編輯器的軸頁面的“Scales”部分將顯示“Automatic”和其他灰色顯示的選項。值顯示為日期時間值。
自動選擇最佳軸刻度范圍以適合您的數(shù)據(jù)。如果您打開自動關(guān)閉比例部分將ungrey選項,您可以更改軸值。重要的是,請記住從頁面左側(cè)的軸列表中選擇要配置的軸。 將行系列添加到圖表中添加一個命令按鈕,其中包含以下代碼:
Dim t As Integer For t = 0 To 40 With TChart1.Series(0) .Add CInt((Rnd) * t), "", vbRed End With Next t
在按鈕中運(yùn)行代碼將繪制一個包含40個隨機(jī)值的Line Series。在設(shè)計時轉(zhuǎn)到圖表編輯器。在“Axis”頁面的“Bottom Axis”部分中,將“Automatic”設(shè)置為“off”。您現(xiàn)在可以配置軸刻度的最大值和最小值。再次運(yùn)行代碼將顯示值,具體取決于您為Axis配置的值。使用鼠標(biāo)右鍵可以滾動查看剩余值。
按代碼設(shè)置軸刻度
您可以使用以下代碼更改運(yùn)行時的最大值和最小值:
With TChart1.Axis.Bottom .Automatic = False .Maximum = 36 .Minimum = 5 End With
您可以將Axis scale Maximum和Minimum設(shè)置為自動單獨(dú)。例如:
With TChart1.Axis.Bottom .AutomaticMaximum = True .AutomaticMinimum = False .Minimum = 5 End With
偏移
您可以將軸設(shè)置為具有最小和最大比例的偏移(以像素為單位)。
TChart1.Axis.Left.MaximumOffset = 4 TChart1.Axis.Left.MinimumOffset = 4
(二)Increment
您可以定制Axis的間隔。從Axis頁面的Scales部分選擇Desired Increment組合框,并添加所需的增量。您可以在運(yùn)行時通過代碼更改它:
With TChart1.Axis.Bottom .Increment = 20 End With
日期時間數(shù)據(jù)
如果您的數(shù)據(jù)是datetime(您可以通過轉(zhuǎn)到Series,General頁面將數(shù)據(jù)設(shè)置為系列的datetime),Chart,Axis頁面,scales部分將顯示日期時間范圍。從Desired Increment組合框中顯示的范圍中選擇增量。 添加一些示例數(shù)據(jù)
For t = 1 To 25 With TChart1.Series(0) .AddXY DateValue("2017, 11, " & t), Rnd(t) * t, "", vbRed End With Next t
在運(yùn)行時更改增量:
With TChart1.Axis.Bottom .Increment = TChart1.GetDateTimeStep(dtTwoDays) End With
注意
更改軸標(biāo)簽頻率時,請記住TeeChart將根據(jù)LabelsSeparation屬性的設(shè)置避免標(biāo)簽重疊。這意味著如果標(biāo)簽頻率太高而不適合標(biāo)簽,那么TeeChart將分配“最適合”。更改標(biāo)簽角度和標(biāo)簽分離是2個選項,可幫助您安裝所需的標(biāo)簽。
Titles
標(biāo)題在Axis頁面的標(biāo)題部分中設(shè)置。您可以更改Axis及其字體的標(biāo)題文本。該角度可以從值0,90,180,270度中選擇。
Labels
有關(guān)標(biāo)簽屬性的簡歷,請參閱AxisLabels類(IAxislabels接口)。
注意
更改軸標(biāo)簽頻率時,請記住TeeChart將根據(jù)Labels.separation屬性的設(shè)置避免標(biāo)簽重疊。這意味著如果標(biāo)簽頻率太高而不適合標(biāo)簽,那么TeeChart將分配“最適合”。更改標(biāo)簽角度和標(biāo)簽分離是2個選項,可幫助您安裝所需的標(biāo)簽。請參閱Labels.Angle屬性。
標(biāo)簽格式
您可以將所有標(biāo)準(zhǔn)數(shù)字和日期格式應(yīng)用于Axis標(biāo)簽。“Axis”頁面的“Labels”部分包含“Values format”字段。如果您的數(shù)據(jù)是datetime,則字段名稱將更改為“Date time format”。在編輯器中拖動幫助“?” 在該字段上的圖標(biāo),以獲得完整的選項列表。在運(yùn)行時使用:
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標(biāo)簽
軸標(biāo)簽可以顯示為多行文本而不是單行文本。使用回車符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標(biāo)簽的示例: 以下將在兩行文本中顯示底軸標(biāo)簽,一行顯示月份和日期,第二行顯示年份: 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屬性設(shè)置為True,則軸將自動將標(biāo)簽拆分為找到空格的行。
TChart1.Axis.Bottom.Labels.MultiLine = True
將標(biāo)簽分為兩部分:
'mm / dd'代表第二行 'hh:mm'代表第二行
在運(yùn)行時,您始終可以使用OnGetAxisLabel事件以編程方式將標(biāo)簽拆分為行:
Private Sub TChart1_OnAfterDraw() TChart1.Axis.Left.Labels.TeeSplitInLines LabelText, " " End Sub
全局“TeeSplitInLines”過程將“LabelText”中的所有空格轉(zhuǎn)換為行分隔符(返回)。 軸標(biāo)簽。角度屬性(標(biāo)度旋轉(zhuǎn)角度為0度,90度,180度或270度)也可用于多線軸標(biāo)簽。
自定義軸標(biāo)簽
可以使用Axis事件獲得更多標(biāo)簽控件。事件允許您激活/停用/更改任何單個Axis標(biāo)簽。以下示例修改每個Label,將文本短語放在點(diǎn)索引值的前面。
'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
可以使用自定義文本和格式在特定位置修改軸標(biāo)簽,而無需使用TeeChart事件,從而可以更輕松地在ASP方案中修改服務(wù)器端。
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
對數(shù)標(biāo)簽
正常對數(shù)標(biāo)簽可以通過以下方式設(shè)置:
With TChart1.Axis.Left .Logarithmic = True .Increment = 0 ' the default .SetMinMax 0, 10000 .Labels.ValueFormat = "#e+0" ' exponential format End With
標(biāo)簽將根據(jù)對數(shù)基數(shù)(默認(rèn)為10)進(jìn)行設(shè)置,因此,在此情況下,標(biāo)簽為1,10,100,1000,10000。
Ticks和Minor
有3種刻度類型和2種類型的網(wǎng)格。您可以更改每個刻度和網(wǎng)格類型的長度,寬度和顏色。可以通過«Ticks»選項卡對Ticks及其關(guān)聯(lián)的Grid和Inner Ticks進(jìn)行更改; 可以通過«Minor»選項卡更改Minor Ticks及其關(guān)聯(lián)的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
購買TeeChart Pro AciveX正版授權(quán),請點(diǎn)擊“咨詢在線客服”喲!