【TeeChart Pro ActiveX教程】(七):使用函数(下)
在上一篇文章中,我们介绍到了在Teechart Pro ActiveX中的功能特点和添加功能,今天我们接着讲定义数据源、功能期间和周期样式
(一)定义数据源
上一节中的示例重点介绍如何使用Datasource通过代码填充Function.Series使用datasource定义Function的输入或定义Series ODBC数据源(请参阅有关访问数据库的教程)。
使用图表编辑器,在添加函数后,函数系列的“数据源”页面将显示包含在函数定义中的可用系列列表。在这里,您可以更改要应用于系列的函数类型,并从左侧列表框“Available”中选择系列,并将它们添加到右侧列表框“Selected”。
按代码的数据源使用Series.Datasource属性。
例:假设我们在图表中有2个数据系列。我们添加了一个由2系列的平均值组成的函数:
With TChart1 .AddSeries scLine 'Define the Function Type for the new Series .Series(2).SetFunction tfAverage .Series(2).DataSource = "Series0,Series1" End With
我们为2系列添加点数:
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方法在运行时更改函数定义,以便为Series分配新函数。
TChart1.Series(2).Setfunction tfMovavg
使用上面的代码行,Setfunction将Series(2)的Function更改为Moving Moving。
(二)功能期
Period是使用函数的重要属性,因为Period定义了循环应用Function的点的范围。
例:我们有6个数据点(例如Bar系列的条形图),其值为: 3,8,6,2,9和12
我们定义一个具有周期0的函数系列(默认),绘制的平均值为: 6.667
将Period设置为2,我们得到3个平均值作为函数的输出: 5.5,4和10.5
这些值将在其周期范围中集中绘制,即输入系列的第1和第2列之间的第1个值,第3个和第4个条之间的第2个值等。 您可以通过在“Datasource”页面中选择相关的“Series和Function”并单击“Options”选项卡来定义“Period”,也可以使用“FunctionType”在运行时修改“Period”。 例如,系列2是功能系列:
周期样式
期间可以定义为范围。这在使用Date-Time系列时非常有用,并且想要在“OneMonth”或“OneDay”等日期时间步骤中表达函数的“Period”。属性“PeriodStyle”控制如何表达“Period”。 例如,您现在可以使用日期时间源系列上的常规“Average”功能绘制“monthly average of sales\月平均销售额”功能,并将功能期间设置为“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"
这将产生几个点,每个点显示Series0中每个月数据的“Average”。 在计算日期时间段的函数时,必须按源日期对源Series0中的点进行排序。 该范围也可用于非日期时间序列:
TChart1.Series(1).SetFunction tfAverage TChart1.Series(1).FunctionType.PeriodStyle =psRange TChart1.Series(1).FunctionType.Period=100 TChart1.Series(1).DataSource= "Series0"
这将计算每个“100”间隔内每组点的平均值。 ( X > = 0,X < 100的点将用于计算第一个平均值,X> = 100的点,X < 200将用于计算第二个平均值,依此类推......)。 请注意,这与计算每100个点的平均值不同。 使用“Period Alignment”属性可以对齐“Series”范围内的功能点。以下将绘制每月结束时的功能点:
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正版授权,请点击“”哟!