【TeeChart Pro ActiveX教程】(七):使用函數(shù)(下)
在上一篇文章中,我們介紹到了在Teechart Pro ActiveX中的功能特點和添加功能,今天我們接著講定義數(shù)據(jù)源、功能期間和周期樣式
(一)定義數(shù)據(jù)源
上一節(jié)中的示例重點介紹如何使用Datasource通過代碼填充Function.Series使用datasource定義Function的輸入或定義Series ODBC數(shù)據(jù)源(請參閱有關(guān)訪問數(shù)據(jù)庫的教程)。
使用圖表編輯器,在添加函數(shù)后,函數(shù)系列的“數(shù)據(jù)源”頁面將顯示包含在函數(shù)定義中的可用系列列表。在這里,您可以更改要應(yīng)用于系列的函數(shù)類型,并從左側(cè)列表框“Available”中選擇系列,并將它們添加到右側(cè)列表框“Selected”。
按代碼的數(shù)據(jù)源使用Series.Datasource屬性。
例:假設(shè)我們在圖表中有2個數(shù)據(jù)系列。我們添加了一個由2系列的平均值組成的函數(shù):
With TChart1 .AddSeries scLine 'Define the Function Type for the new Series .Series(2).SetFunction tfAverage .Series(2).DataSource = "Series0,Series1" End With
我們?yōu)?系列添加點數(shù):
Dim t As Integer With TChart1 For t = 0 To 10 .Series(0).Add 2 * t, "", clTeeColor .Series(1).Add 3 * t, "", clTeeColor Next t End With
請注意,該功能不會顯示。您需要使用Series.CheckDatasource方法讀取Function的值。
TChart1.Series(2).CheckDataSource 'Read in data for Function
可以使用Setfunction方法在運行時更改函數(shù)定義,以便為Series分配新函數(shù)。
TChart1.Series(2).Setfunction tfMovavg
使用上面的代碼行,Setfunction將Series(2)的Function更改為Moving Moving。
(二)功能期
Period是使用函數(shù)的重要屬性,因為Period定義了循環(huán)應(yīng)用Function的點的范圍。
例:我們有6個數(shù)據(jù)點(例如Bar系列的條形圖),其值為: 3,8,6,2,9和12
我們定義一個具有周期0的函數(shù)系列(默認),繪制的平均值為: 6.667
將Period設(shè)置為2,我們得到3個平均值作為函數(shù)的輸出: 5.5,4和10.5
這些值將在其周期范圍中集中繪制,即輸入系列的第1和第2列之間的第1個值,第3個和第4個條之間的第2個值等。 您可以通過在“Datasource”頁面中選擇相關(guān)的“Series和Function”并單擊“Options”選項卡來定義“Period”,也可以使用“FunctionType”在運行時修改“Period”。 例如,系列2是功能系列:
周期樣式
期間可以定義為范圍。這在使用Date-Time系列時非常有用,并且想要在“OneMonth”或“OneDay”等日期時間步驟中表達函數(shù)的“Period”。屬性“PeriodStyle”控制如何表達“Period”。 例如,您現(xiàn)在可以使用日期時間源系列上的常規(guī)“Average”功能繪制“monthly average of sales\月平均銷售額”功能,并將功能期間設(shè)置為“one month”:
'Add a Series and fill it with datetime data values at runtime (or from a database) TChart1.Series(1).SetFunction tfAverage TChart1.Series(1).FunctionType.PeriodStyle =psRange TChart1.Series(1).FunctionType.Period = TChart1.GetDateTimeStep dtOneMonth TChart1.Series(1).DataSource = "Series0"
這將產(chǎn)生幾個點,每個點顯示Series0中每個月數(shù)據(jù)的“Average”。 在計算日期時間段的函數(shù)時,必須按源日期對源Series0中的點進行排序。 該范圍也可用于非日期時間序列:
TChart1.Series(1).SetFunction tfAverage TChart1.Series(1).FunctionType.PeriodStyle =psRange TChart1.Series(1).FunctionType.Period=100 TChart1.Series(1).DataSource= "Series0"
這將計算每個“100”間隔內(nèi)每組點的平均值。 ( X > = 0,X < 100的點將用于計算第一個平均值,X> = 100的點,X < 200將用于計算第二個平均值,依此類推......)。 請注意,這與計算每100個點的平均值不同。 使用“Period Alignment”屬性可以對齊“Series”范圍內(nèi)的功能點。以下將繪制每月結(jié)束時的功能點:
TChart1.Series(1).FunctionType.PeriodStyle = psRange TChart1.Series(1).FunctionType.Period = TChart1.GetDateTimeStep dtOneMonth TChart1.Series(1).FunctionType.PeriodAlign =paLast
PeriodStyle = OneMonth and PeriodAlign = paLast
從下圖中可以看出,“average”是在月底繪制的。
PeriodStyle = OneMonth and PeriodAlign = paFirst
在這種情況下,“average”在月初繪制。
購買TeeChart Pro AciveX正版授權(quán),請點擊“咨詢在線客服”喲!