系列类型
该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');
未完待续...
来源:oschina
链接:https://my.oschina.net/u/3905944/blog/3053106