【下载TeeChart for Java最新版本】
(一)系列类型
TChartSeries组件是所有Series类型的common ancestor。
1.1 系列类结构
作为TeeChart类型库结构的一小部分背景,下面是对系列类和接口的解释。下图显示了TeeChart系列类之间的关系。所有类都派生自通用的“Series”类,因此共享“Series”方法。几个抽象类派生自Series(Custom3DSeries,CustomBarSeries和CircledSeries),这些类以灰色突出显示,并且它们的接口不能直接用于编程,它们的特性由其后代Series类型继承。所有派生系列(橙色)均可在TeeChart图库中访问,以包含在您的图表中。
TeeChart Pro的内部Series Class层次结构
您可以在设计时创建新的和不同的系列类型并将其添加到同一个图表中。
//Add a series at runtime public void jButton2_actionPerformed(ActionEvent e) { Area area1 = new Area(tChart1.getChart()); area1.fillSampleValues(4); //Or //Area area1 = new Area(); //tChart1.getSeries().add(area1); //area1.fillSampleValues(4);//tChart1.Series.Add(tmpAreaSeries); }
在同一图表中混合不同系列类的一个示例是在设计时将(Series(0)), Bar (Series(1))和Line (Series(2))系列添加到图表中。所有访问一个公共索引结构,图表的系列列表,使用该系列可能如下所示:
//You could add the Series at runtime Area area1 = new Area(tChart1.getChart().chart); Bar bar1 = new Bar(tChart1.getChart().chart); Line line1 = new Line(tChart1.getChart().chart); //Use Series common properties tChart1.getSeries(0).fillSampleValues(10); tChart1.getSeries(1).fillSampleValues(10); tChart1.getSeries(2).fillSampleValues(10); tChart1.getSeries(1).getMarks().setVisible(false); tChart1.getSeries(2).getMarks().setVisible(false); //Modify Bar specific properties bar1.setBarStyle(BarStyles.PYRAMID); bar1.getPen().setColor(Color.Yellow); //Modify Line specific properties line1.setStairs(true); //Set line to Stairs line1.getLinePen().setColor(Color.Blue); //LineSeries bounding lines colour //Modify Area specific properties area1.getAreaBrush().setStyle(HatchStyle.CROSS); //Area fill pattern
1.2 选择系列类型
为图表选择系列类型将在很大程度上取决于您自己对图表的要求,但是,有时候Chart的选择取决于哪种Series类型支持输入变量的数量,因为要绘制的变量数量很多,下表显示了Series类型示例允许的变量数。
系列类型 | 变量数量 | 数据源属性 |
基本 | ||
Line | 2 | XValues,YValues,XLabel |
Fast Line | 2 | XValues,YValues,XLabel |
Bar | 2 | XValues,YValues(称为Bar),XLabel |
HorizBar | 2 | XValues,YValues(称为Bar),XLabel |
Area | 2 | XValues,YValues,XLabel |
Point | 2 | XValues,YValues,XLabel |
Pie | 1 | PieValues,XLabel |
Arrow | 4 | StartXValues,StartYValues,XLabel,EndXValues,EndYValues |
Bubble | 3 | Xvalues, YValues, XLabel, RadiusValues |
Gantt | 3 | StartValues,EndValues,AY(Y轴级别),AXLabel(标签可选择显示在Y轴上或作为标记) |
Shape | 4 | X0 (Top), Y0 (Bottom), X1 (Left), Y1 (Right) |
Extended | ||
Bezier | 2 | XValues, YValues, XLabel |
Candle | 5 | OpenValues,CloseValues,HighValues,LowValues,DateValues |
Contour | 3 | XValues,YValues,XLabel,ZValues |
Error Bar | 3 | XValues, YValues, XLabel, ErrorValues |
Point3D | 3 | XValues, YValues, XLabel, ZValues |
Polar | 2 | XValues,YValues,Labels(Polar有角度和半径) |
Radar | 2 | XValues,YValues,Labels(Radar有角度和半径) |
3D Surface | 3 | XValues, YValues, ZValues |
Volume | 2 | XValues, YValues (VolumeValues), XLabel |
标签可用于扩展2变量Series Type的值。请参阅下面的示例,该示例在同一图表中使用3个Bar Series类型的实例。
例:使用Bar系列类型
产品代码 | 月 | 产量 |
10 | Jan | 300 |
10 | Feb | 325 |
10 | Mar | 287 |
12 | Jan | 175 |
12 | Feb | 223 |
12 | Mar | 241 |
14 | Jan | 461 |
14 | Feb | 470 |
14 | Mar | 455 |
在最简单的形式中,数据生成以下图表,按月对信息进行分组:
或(按产品分组):
在上表(Stock)中添加了新值。
产品代码 | 月 | 产量 | 库存 |
10 | Jan | 300 | 600 |
10 | Feb | 325 | 715 |
10 | Mar | 287 | 676 |
12 | Jan | 175 | 245 |
12 | Feb | 223 | 270 |
12 | Mar | 241 | 315 |
14 | Jan | 461 | 800 |
14 | Feb | 470 | 755 |
14 | Mar | 455 | 835 |
库存的价值通常高于月产量,因此显示它们会给出下面的图表(这次是2D)。图表使用线系列来区分股票。
1.3 将数据添加到系列
大多数系列类型,使用Add和ADDXY方法添加数据。有一些例外,请参见下表:
系列类型 | 添加系列点数 | 删除系列点 |
标准系列类型 | ||
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 | Series.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 (Each Shape is a unique Series) |
1.4 Colour
添加点时,可以手动为点添加颜色,例:
tChart1.addSeries(new Bar()); tChart1.getSeries(0).add(50,"oranges", Color.Orange);
或者,您可以允许TeeChart分配颜色。如果ColorEach设置为true,TeeChart将为每个新系列选择最多19种唯一且尚未使用的颜色之一,或者为每个新系列点选择一种颜色,例:
Random rnd = new Random(); tChart1.getSeries(0).setColorEach(true); for(int i = 0; i < 19; ++i) { int higher = i + 65; tChart1.getSeries(0).add(rnd.nextInt(100)); } }
1.5 从系列中删除数据点
使用Series.Delete从Series中删除一个点,例:
tChart1.getSeries(0).delete(7); //(8th point - Points index start at zero)
Series.Clear清除系列中的所有点。
1.5 向系列添加空点
有关支持AddNull方法的系列类型列表,顾名思义,AddNull将为系列添加一个Null点,允许您为该点定义一个标签,但在该点处系列中断。在Line Series的情况下,中断前的最后一个点不会连接到中断后的第一个点。见Series.AddNull,例:
Line line = new Line(); line.addNull();