提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:况鱼杰|2019-07-10 12:00:58.087|阅读 409 次
概述:TeeChart Pro功能是一个系列,几乎可以是任何系列类型,可以是应用代数函数,也可以是数据源。所有函数都派生自TTeeFunction组件并继承TeeFunction的Period属性。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
TeeChart Pro VCL/FMX是一款主流的图表制作工具。提供了数百种用于可视化的2D、3D图形样式、56种数学、统计和金融函数,以及不限数量的坐标轴和30种调色板组件。TeeChart Pro VCL/FMX教程将会以连载的形式持续为大家带来TeeChart Pro VCL/FMX的使用方法。
Function Period
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个值,依次类推。
您可以通过在图表编辑器中选择函数来定义Period,也可以在FunctionType运行时修改Period。
示例:系列2是功能系列:
Series2.FunctionType.Period:=2;
以下是2张图表,突出显示应用期间的效果 :
当函数Period大于零(它按点组计算)时,函数结果默认在函数周期的center位置添加到系列中,PeriodAlign属性将会控制where以在整个期间内放置函数计算。
TeeFunction1.PeriodAlign := paCenter ; { <-- by default it is centered }
paFirst和paLast常量将在每个Period的开始和结束的X坐标处绘制计算。 每个蓝点显示使用该月第一天和最后一天之间所有点的平均值。
PeriodAlign = paLast
从下图中可以看出,平均值是在月底绘制的:
PeriodAlign = paFirst
这种情况下,平均值就是在月初绘制的:
Deriving custom functions (VCL only)
创建一个新的Function组件只是创建一个从TTeeFunction派生的新组件(它也可以从现有函数派生)。 在TTeeFunction中有两个重要的虚拟方法可以被覆盖用以创建新的Function类型:
函数TTeeFunction.Calculate(SourceSeries:TChartSeries; First,Last:Longint):Double;
函数TTeeFunction.CalculateMany(SourceSeriesList:TList; ValueIndex:Longint):Double;
如果只有一个系列是数据源,则Calculate方法用于计算函数结果,如果多个系列是数据源,则CalculateMany用于计算函数结果。
示例:创建新的TMyFunction
TMyFunction返回平方和
type TMyFunction = class( TTeeFunction ) end;
此函数只能有一个数据源或多个数据源,因此我们将覆盖Calculate和CalculateMany方法。
我们将用覆盖TMyFunction的Calculate方法来做一件非常简单的事情。 Calculate方法如下所示:
Function TMyFunction.Calculate(SourceSeries:TChartSeries; First,Last:Integer):Double; Var StartPoint, EndPoint, t : Integer; begin StartPoint:=0; EndPoint:=SourceSeries.Count-1; if First <> -1 then StartPoint:=First; if Last <> -1 then EndPoint:=Last; Result:=0; for t:=StartPoint to EndPoint do Result:= Result + Sqr(SourceSeries.MandatoryValueList[t]); end;
StartPoint和EndPoint变量用于loop所有的SourceSeries点以计算平方和。
使用MandatoryValueList属性代替YValues属性只是为了使此函数与HorizBarSeries等系列类型一起使用,其中是XValues保存点值而不是YValues。
如果只有一个系列是数据源,则Calculate方法用于计算函数结果,如果多个系列是数据源,则CalculateMany用于计算函数结果。
覆盖TMyFunction的CalculateMany方法以允许TMyFunction与具有多个系列作为数据源的系列一起使用。 以编程的方式,一个系列可以添加为其他系列的数据源。
Function TMyFunction.CalculateMany(SourceSeriesList:TList; ValueIndex: Integer):Double; var t : Integer; begin Result:=0 ; for t:= 0 to SourceSeriesList.Count -1 do Result := Result + sqr(TChartSeries(SourceSeriesList[t]).MandatoryValueList[ValueIndex]); end;
CalculateMany被源系列中的每个点调用一次,从零开始,再以所有数据源的最小点数结束。
重点!!!理解Calculate和CalculateMany之间的区别非常重要。 当只有一个数据源并且只调用一次时调用Calculate。 当有多个Series作为数据源时,会多次调用CalculateMany(每个点一个)。
如果对于TeeChart Pro VCL/FMX有任何的问题或者想要咨询的都可以点击联系
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
支持RAD Studio,Delphi和C ++ Builder以及FireMonkey的图表制作工具
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢