TeeChart Pro VCL/FMX教程(六):使用系列(一)
系列类型
该TChartSeries组件是所有系列类型的共同父类
系列类结构
作为TeeChart组件库结构的一小部分背景,下面是系列组件及其结构的说明。下图显示了TeeChart系列类之间的关系。所有类都派生自通用的“TChartSeries”类,因此共享“Series”属性和方法。其他几个通用类派生自Series(CustomSeries,CustomBarSeries和CircledSeries),它们以绿色突出显示,并且它们的组件不能直接用于编程,它们的特性由其后代Series类型继承。所有派生系列(红色)均可在TeeChart图库中访问,以包含在您的图表中。以这种方式派生的TeeChart系列允许通过公共索引结构(集合)进行可编程访问。
TeeChart Pro的内部Series Class层次结构
在设计时使用TChart编辑器更容易添加Series,但您也可以在运行时创建新的和不同的Series类型并将其添加到同一个Chart中。
//You could add the Series at runtime procedure TForm1.Button2Click(Sender: TObject); var tmpAreaSeries:TAreaSeries; begin tmpAreaSeries:=TAreaSeries.Create(self); With tmpAreaSeries do begin ParentChart:=Chart1; FillSampleValues(10); end; end;
对于在设计时创建的任何系列,新系列都可以使用所有AreaSeries属性和方法。
选择系列类型
为图表选择系列类型很大程度上取决于您对图表的要求。但是,有时候Chart的选择取决于哪种Series类型支持输入变量的数量,因为要绘制的变量数量很多。下表显示了某些不同Series类型允许的变量数。为简洁起见,我们未提供TeeChart提供的所有可能的系列类型。
Series Type | No. of variables | Datasource Properties |
Standard | ||
Line | 2 | XValues, YValues, XLabel |
Bar | 2 | XValues, YValues (called Bar), XLabel |
HorizBar | 2 | XValues, YValues (called Bar), XLabel |
Area | 2 | XValues, YValues, XLabel |
Point | 2 | Xvalues, YValues, XLabel |
Pie | 1 | PieValues, XLabel |
Fast Line | 2 | XValues, YValues, XLabel |
Horiz. Line | 2 | XValues, YValues, YLabel |
Horiz. Area | 2 | XValues, YValues, XLabel |
Shape | 4 | X0 (Top), Y0 (Bottom), X1 (Left), Y1 (Right) |
Bubble | 3 | Xvalues, YValues, XLabel, RadiusValues |
Gantt | 3 | StartValues, EndValues, AY (Y axis level), AXLabel (Label optionally shown on Y-axis or as mark) |
Extended | ||
Arrow | 4 | StartXValues, StartYValues, XLabel, EndXValues, EndYValues |
Polar | 2 | XValues, YValues, Labels (Polar has Angle and Radius) |
Radar | 2 | XValues, YValues, Labels (Radar has Angle and Radius) |
Bezier | 2 | XValues, YValues, XLabel |
Donut | 2 | Angle, YValue, Labels |
Smith | 2 | Resistance, Reactance, Labels |
Pyramid | 3 | XValues, YValues, XLabel, ErrorValues |
Financial | ||
Candle | 5 | OpenValues, CloseValues, HighValues, LowValues, DateValues |
Point & Figure | 5 | OpenValues, CloseValues, HighValues, LowValues, DateValues |
Volume | 2 | XValues, YValues (VolumeValues), XLabel |
Stats | ||
Histogram | 2 | Xvalues, YValues, XLabel |
Error Bar | 3 | XValues, YValues, XLabel, StdErrorValues |
Error | 3 | XValues, YValues, XLabel, StdErrorValues |
High-Low | 3 | XValues, YValues, XLabel, LowValues |
Box Plot | 3 | XValues, SamplesValues, Label |
Horizontal Box Plot | 3 | XValues, SamplesValues, Label |
Funnel | 3 | XValues, QuoteValues, OpportunityValues, XLabel |
3D | ||
Surface | 3 | Xvalues, YValues, ZValues |
Contour | 3 | XValues, YValues, ZValues, XLabel |
Waterfall | 3 | Xvalues, YValues, ZValues |
ColorGrid | 3 | XValues, YValues, ZValues |
Tower | 3 | XValues, YValues, XLabel, ZValues |
Point3D | 3 | XValues, YValues, XLabel, ZValues |
Triangle Surf. | 3 | Xvalues, YValues, ZValues |
Other | ||
Clock | 2 | Angle, YValues, Labels |
Line Point | 2 | XValues, YValues, XLabel |
Bar Join | 2 | Xvalues, YValues, XLabel |
Bar3D | 3 | XValues, YValues, YStartPoint, XLabel |
WindRose | 2 | Angle, YValues, Labels |
Calendar | 2 | XValues, YValues, Labels |
Gauges | ||
1 | Value |
标签可用于扩展2变量Series Type的值。请参阅下面的示例,该示例在同一图表中使用3个Bar Series类型的实例。
使用Bar系列类型
在最简单的形式中,数据生成以下图表,按月对信息进行分组:
或(按产品分组):
我们在上表(Stock)中添加了新值。
库存的价值通常高于月产量,因此显示它们会给出下面的图表(这次是2D)。图表使用线系列来区分股票。
将数据添加到系列
大多数系列类型(ODBC数据源教程8和函数教程7除外)使用Add和ADDXY方法添加数据。有一些例外,请参阅下表,了解它们如何区别的示例:
Series Type | Add Series points | Delete Series points |
Standard Series types | ||
Line | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Horiz Line | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Fast Line | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Bar | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
HorizBar | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Area | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Point | Series.Add Series.AddXY Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Pie | Series.Add Series.AddNull | Series.Delete Series.Clear |
Arrow | ArrowSeries.AddArrow Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Bubble | BubbleSeries.AddBubble Series.AddNull Series.AddNullXY | Series.Delete Series.Clear |
Gantt | GanttSeries.AddGantt GanttSeries.AddGanttColor | Series.Delete Series.Clear |
Shape | ShapeSeries.X0, ShapeSeries.Y0, ShapeSeries.X1, ShapeSeries.Y1 | TChart.RemoveSeries (TCustomAxisPanel) (Each Shape is a unique Series) |
颜色
添加点时,可以手动为点添加颜色
Series1.Add(46, 'My first value', clYellow);
或者使用TeeChart常量clTeeColor,告诉TeeChart分配颜色。TeeChart将为每个新系列选择最多16种独特且尚未使用的颜色中的一种。
Series1.Add(46, 'My first value', clTeeColor);
从系列中删除数据点
使用Series.Delete从Series中删除一个点。
Series1.Add(46, 'My first value', clTeeColor);
Series.Clear清除系列中的所有点。
将Null点添加到系列
有关支持AddNull方法的系列类型列表,请参阅向系列添加数据表。顾名思义,AddNull将为系列添加一个Null点,允许您为该点定义一个标签,但在该点处系列中断。在线系列的情况下,休息前的最后一个点不会在休息后加入到第一个点。见Series.AddNull。
Series1.Delete(7); //(8th point - Points index start at zero)
Series.Clear清除系列中的所有点。
将Null点添加到系列
有关支持AddNull方法的系列类型列表,请参阅向系列添加数据表。顾名思义,AddNull将为系列添加一个Null点,允许您为该点定义一个标签,但在该点处系列中断。在线系列的情况下,休息前的最后一个点不会在休息后加入到第一个点。见Series.AddNull。
Series1.AddNull('my null value');
未完待续...
购买TeeChart Pro VCL/FMX正版授权,请点击“”哟!