提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:况鱼杰|2019-10-24 14:11:03.210|阅读 469 次
概述:本教程转自屈景辉的Teechart应用技术详解——快速图表制作工具一书,本文将会介绍此书的第三章图表与序列的操作维护的第一小节:图表轴的维护,将会介绍轴的刻度设置、时间轴与对数轴、轴的反转等方面。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Steema公司和慧都科技针对中国市场联合推出中文版TeeChart for .NET图表控件,一共汉化2000个词条(17000个单词),汉化文档35000个单词,包括控件设计时与运行时的界面汉化以及控件使用向导文档的汉化,总汉化90%以上!
TeeChart for .NET中文版让您在使用和学习上没有任何语言障碍,至少可以节省30%的开发时间。TeeChart for .NET中文版具有易上手,使用方便,稳定性好,性价比高,价格优惠等优势,并且针对Web应用提供无限制服务器分发授权方式,非常有利于产品集成。
轴的刻度设置
Chart组件有左、右、上、下和深度5个标准轴( LeftAxis、RightAxis、TopAxis、BottomAxis和DepthAxis),每个轴都是TChartAxis组件类的一个实例,而且用户可以自行增加任意个坐标轴。每个轴负责数值与像素之间关系的计算,以及轴、点的插入和删除等,各自按默认的最大和最小值进行计算。
当需要设定按用户指定的值进行图表绘制时,可以按下列代码关闭自动计算属性:
Chart1.LeftAxis.Automatic:=False;
也可以采用下列代码对最小、最大值按自动、非自动(设定值)方式计算:
Chart1.LeftAxis.AutomaticMaximum:=False; Chart1.LeftAxis.AutomaticMinimum:=True;
也可以通过Minimum和Maximum属性改变坐标轴的设定:
with Chart1. LeftAxis do begin Automatic:=False; Minimum:=0; Maximum:= 10000; end;
或者使用轴对象的方法SetMinMax进行设置:
Chart1.LeftAxis.SetMinMax(0,10000);
时间轴与对数轴
当与序列组件关联的轴包含有时间刻度时,即XValues.DateTime或YValues.DateTime属性为真时,改变时间轴的刻度与改变非时间轴刻度的方法是一样的:
With Chart1.LeftAxis do begin Automatic:=False; Minimum:=EncodeDate(1990, 3, 16); Maximum := Encode Date(2000, 5, 24 ); end;
如果一个轴的最大值和最小值大于或等于零,可以将这个轴设置为对数轴。线性轴和对数轴的刻度设置是不同的。
注意:当按对数增量方式显示轴标签时要借助OnGetNextAxisLabel和OnGetAxisLabel事件产生一个用户轴标签。
轴的反转
一个坐标轴可以进行反转即Minimum和Maximum进行交换,可设定 Inverted:=True;使用轴反转功能时往往会造成误解,毕竟这种方法不太常用,所以在使用过程中需要特别注意。
轴的风格与增量
坐标轴可以通过多种方式显示,如刻度线、栅格、标签的有无,可以定制所有的格式属性如颜色、字体、风格等。轴的增量属性( Increment)控制栅格线的数暈和轴与标签间的距离。默认状态增量为0,这意味着轴将自动计算标签间的距离。如果不希望以自动方式显示标签,可以设置 LabelsSeparation为0:
Chart1.LeftAxis.LabelsSeparation:=0;
下面的代码设置垂直轴的增量为30:
Series1.Clear; Series1. AddArray([ 20, 50, 120 ]); Chart1.LeftAxis.Increment:= 30;
默认状态下,第一个轴标签从离增量最近的地方开始。设置 RoundFirstLabel为False使标签可以从最大值开始:
Chart1.LeftAxis.RoundFirstLabel:=False;
时间轴增量
可以使用包含定义轴增量的预定义数组 DateTimeStep设置时间轴:
Chart1.BottomAxis.Increment:=DateTimeStep[dtOneMonth];
如果想使轴标签精确到时间的边界,如某月的第一天,可以按如下设置:
Chart1.BottomAxis.ExactDateTime:=True;
栅格线与轴标签
轴的栅格线是按每个增量显示的,或者在每个轴的标签位置显示。
TickOnLabelsOnly属性用于控制这个功能:
Chart1.BottomAxis.TickOnLabelsOnly:=False;
轴的标签有几种形式,由LabelStyle属性控制:
Chart1.BottomAxis.LabelStyle:= talValue;
LabelStyle属性的可能取值由TAxisLabelStyle类定义:
TAxisLabelStyle=(talAuto, talNone, talValue, talMark, talText);
其中:talValue:显示轴的刻度。
talMark:显示序列的点标记。
talText:显示序列的XLabels。
talNone:不显示。
talAuto:自动方式显示。
当LabelStyle是talText时,如果序列没有XLabels,TeeChart将自动设置到talValue。对于talMark和talText风格,轴标签将按序列点的位置精确显示,这时将不再使用轴的增量属性也可以在OnGetAxisLabel事件中定值标签文本:
procedure TForm1.Chart1GetAxisLabel (Sender:TChartAxis; Series:TChartSeries: ValueIndex: Integer; var LabelText: String); begin if Sender=Chart1. LeftAxis then if ValueInde<2 then LabelText :=' '; end;
在OnGetNextAxisLabelEvent中定义标签出现的位置。下面这个例子是在垂直轴正值处显示标签,从0开始,增量是250:
procedure TAxisLabelsForm.Chart1GetNextAxisLabel (Sender:TChartAxis; LabelIndex: Integer; var Labelvalue: Double; var Stop: Boolean); begin if Sender=Chart1. LeftAxis then begin if LabelValue>=250 then LabelValue:=LabelValue+250 else LabelValue:=250; end; stop:=False; end;
下面的例子是在左轴上绘制标签后停止绘制:
procedure TForm1.Chart1GetNextAxisLabel(Sender:TChartAxis; LabelIndex: Integer; var LabelValue: Double; var Stop: Boolean); begin if Sender=Chart1. LeftAxis then begin stop:=False; case LabelIndex of 0: LabelValue:=50; 1: LabelValue: =80; 2: LabelValue:=110; else Stop:=True; end; end;
自定义轴绘制( CustomDraw)
Customdraw方法可以在屏幕的指定位置显示一个与当前存在的轴刻度相同的新轴。下面的例子是用随机数生成一个线性序列,然后创建两个附加的轴。有三个可指定参数: PosLabels、PosTitle和PosAxis分别放置标签、标题和轴的位置,参数GridVisible的true/false可定义是否扩充栅格到新的轴:
procedure TForm1.FormCreate(Sender:TObject); var t:integer; begin Series1.XValues.DateTime:=False; Chart1.BottomAxis.Increment:=0; For t: =-10 to 10 do Series1. addXY(t, Random (100),' ', clTeeColor); end; procedure TForm1.Series1AfterDrawValues(Sender: Tobject); var posaxis, percent: Integer; begin percent:=50; with DBChart1 do begin PosAxis:=ChartRect.Left+Trunc( ChartWidth*Percent/100.0); LeftAxis.CustomDraw(posaxis-10,posaxis-40,posaxis,True); PosAxis:=ChartRect.Top+Trunc( ChartHeight*Percent/100.0); BottomAxis CustomDraw(posaxis+10, posaxis+40, posaxis,True); end;
自定义轴
使用图表編辑器实现
自定义轴可以在设计阶段使用图表编辑器实现,步骤如下:
在图表编辑器的轴(Axis)页面使用+按钮增加一个轴。
在位置( Position)页面设置轴的有关属性。
配置自定义轴的属性和配置标准轴属性的方法是一致,它允许移动或重新定义轴的维数。
在序列的通用( General)页面建立轴与序列的关联。
使用代码实现
下面的代码增加垂直和水乎两个轴并与序列关联。
procedure TForm1.FormCreate(Sender:TObject); begin Series1.FillSampleValues(10); //随机生成10个点 Series2.FillSampleValues(10); end; procedure TForm1.BitBtn1Click(Sender:Tobject); var tmpVertAxis:TChartAxis; tmpHorizAxis:TChartAxis; tmpVertAxis.PositionPercent:=-50; Series1.CustomVertAxis:=tmpVertAxis; Chart1.CustomAxes.Add; //增加水平轴 tmpHorizAxis:=Chart1.CustomAxes[1]; tmpHorizAxis.Horizonta1:=True; tmpHorizAxis.Axis.Color:=c1Green; tmpHorizAxis.PositionPercent:=50; Series1.CustomHorizAxis:=tmpHorizAxis; end;
当需要访问自定义轴时可通过 Chart.CustomAxes列表实现。
下一节我们将会介绍第三章图表与序列的操作维护:序列的维护(上)。如果有对Teechart图表感兴趣的朋友,可以多多关注本教程,并且欢迎在评论区留言。
相关资料推荐:
上一章:Teechart组件的应用实例:Web数据源组件ChartWebSource
现TeeChart for .NET,TeeChart for JavaScript/HTML5,TeeChart for Xamarin.Android等均已加入在线订购,现在抢购可立享优惠!
关注慧聚IT微信公众号☟☟☟,了解产品的最新动态及最新资讯。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
交互性强的轻量级ActiveX图表控件,能高效生成多任务仪表板
TeeChart Pro VCL/FMX支持RAD Studio,Delphi和C ++ Builder以及FireMonkey的图表制作工具
TeeChart for Java适用于所有主流Java编程环境的TeeChart图表库
TeeChart for PHP一款含100%的PHP源代码并支持PHP5及更高的版本的图表开发工具
TeeChart for .NET优秀的工业4.0 WinForm图表控件,官方独家授权汉化,集功能全面、性能稳定、价格实惠等优势于一体
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢