【TeeChart for Java教程】(六)上:使用系列——系列类型

【下载TeeChart for Java最新版本】

(一)系列类型

TChartSeries组件是所有Seri​​es类型的common ancestor。

1.1 系列类结构

作为TeeChart类型库结构的一小部分背景,下面是对系列类和接口的解释。下图显示了TeeChart系列类之间的关系。所有类都派生自通用的“Series”类,因此共享“Series”方法。几个抽象类派生自Series(Custom3DSeries,CustomBarSeries和CircledSeries),这些类以灰色突出显示,并且它们的接口不能直接用于编程,它们的特性由其后代Series类型继承。所有派生系列(橙色)均可在TeeChart图库中访问,以包含在您的图表中。

teechart_for_java

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类型示例允许的变量数。

系列类型变量数量数据源属性
基本  
Line2XValues,YValues,XLabel
Fast Line2XValues,YValues,XLabel
Bar2XValues,YValues(称为Bar),XLabel
HorizBar2XValues,YValues(称为Bar),XLabel
Area2XValues,YValues,XLabel
Point2XValues,YValues,XLabel
Pie1PieValues,XLabel
Arrow4StartXValues,StartYValues,XLabel,EndXValues,EndYValues
Bubble3Xvalues, YValues, XLabel, RadiusValues
Gantt3StartValues,EndValues,AY(Y轴级别),AXLabel(标签可选择显示在Y轴上或作为标记)
Shape4X0 (Top), Y0 (Bottom), X1 (Left), Y1 (Right)
Extended  
Bezier2XValues, YValues, XLabel
Candle5OpenValues,CloseValues,HighValues,LowValues,DateValues
Contour3XValues,YValues,XLabel,ZValues
Error Bar3XValues, YValues, XLabel, ErrorValues
Point3D3XValues, YValues, XLabel, ZValues
Polar2XValues,YValues,Labels(Polar有角度和半径)
Radar2XValues,YValues,Labels(Radar有角度和半径)
3D Surface3XValues, YValues, ZValues
Volume2XValues, YValues (VolumeValues), XLabel

标签可用于扩展2变量Series Type的值。请参阅下面的示例,该示例在同一图表中使用3个Bar Series类型的实例。

例:使用Bar系列类型

产品代码产量
10Jan300
10Feb325
10Mar287
12Jan175
12Feb223
12Mar241
14Jan461
14Feb470
14Mar455

在最简单的形式中,数据生成以下图表,按月对信息进行分组:

teechart_for_java

或(按产品分组):

teechart_for_java

在上表(Stock)中添加了新值。

产品代码产量库存
10Jan300600
10Feb325715
10Mar287676
12Jan175245
12Feb223270
12Mar241315
14Jan461800
14Feb470755
14Mar455835

库存的价值通常高于月产量,因此显示它们会给出下面的图表(这次是2D)。图表使用线系列来区分股票。

teechart_for_java

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();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值