posts - 32,  comments - 3,  trackbacks - 0
         JFreeChart并不存在多个不同的类来生成不同的图形。所有的图形都是具体类JFreeChart的实例化对象,初始化JFreeChart对象的时候通过指定不同的Plot实现类就可以显示出不同的图形。不同的Plot实现类具有不同的Renderer对象、Axis对象、Dataset对象。

       JFreeChart提供工厂类ChartFactory方便使用者生成各种不同的图形。ChartFactory类的各个工厂方法中实现对具体Plot的指定以及对类JFreeChart构造函数的调用。

    下面以常用图形说一下常用的使用流程(大部分的操作讲的并不全面,比如JFreeChart可能提供了很多增加、修改数据的方式,下文中可能只列举一种)。

1柱状图

1)平面柱状图

    生成柱状图操作:

JFreeChartchart=ChartFactory.createBarChart(String title,//图标题

String categoryAxisLabel,//x轴标题

String valueAxisLabel,//y轴标题

CategoryDataset dataset,//数据源

PlotOrientation orientation,//显示方向

Boolean legend,//是否显示图例

Boolean tooltips,//是否显示tooltip

Boolean urls)//是否指定url

平面柱状图的Plot对象是CategoryPlot类型。CategoryPlot对象的x轴是CategoryAxis对象,y轴是NumberAxis对象,绘制单元是BarRenderer对象,数据源是CategoryDataset对象。

获取CategoryPlot对象操作为:

CategoryPlot plot = (CategoryPlot)chart.getPlot();或者

CategoryPlot plot = chart.getCategoryPlot();

获取绘制单元操作:

       BarRenderer renderer = (BarRenderer)plot.getRenderer();

获取x轴的操作:

CategoryAxis xAxis = (CategoryAxis)plot.getDomainAxis();

获取y轴操作:

NumberAxis yAxis = (NumberAxis)plot.getRangeAxis();

获取数据源:

CategoryDataset dataset = plot.getDataset();

    柱状图可以接受一切CategoryDataset类型的数据源,下面讲解一下常用的CategoryDataset类型DefaultCategoryDataset的使用方式

实例化:

DefaultCategoryDataset dataset = new DefaultCategoryDataset();

增加数据

dataset.addValue(doublevalue,ComparablerowKey,ComparablecolumnKey);

删除数据:

       dataset.removeValue(ComparablerowKey,ComparablecolumnKey);

    或者

       dataset.removeColumn(intcolumnIndex);

    或者

       dataset.removeColumn(ComparablecolumnKey);

    对行同样有上述两种删除方式,不在列举。

修改数据:

       dataset.setValue(doublevalue,ComparablerowKey,ComparablecolumnKey);

查询数据:

plot对象、绘制单元、x轴、y轴的显示特性修改不再一一介绍。

23D柱状图

    对应的工厂方法为createBarChart3D,该方法的参数与平面柱状图相同。3D柱状图的Plot对象是CategoryPlot类型。CategoryPlot对象的x轴是CategoryAxis3D对象,y轴是NumberAxis3D对象,绘制单元是BarRenderer3D对象,数据源是CategoryDataset对象。

    具体使用以及操作与平面柱状图雷同,不在详述。

2饼状图

(1)平面饼状图

生成平面饼状图:

JFreeChartchart=ChartFactory.createPieChart(String title,//图标题

PieDataset dataset,//数据源

Boolean legend,//是否显示图例

Boolean tooltips,//是否显示tooltip

Boolean urls)//是否指定url

平面饼状图的Plot对象是PiePlot类型。PiePlot对象没有x轴对象、y轴对象、绘制单元对象,数据源是PieDataset对象。

获取PiePlot对象操作为:

PiePlot plot = (PiePlot)chart.getPlot();

获取数据源:

PieDataset dataset = plot.getDataset();

饼状图可以接受一切PieDataset类型的数据源,下面讲解一下常用的PieDataset类型DefaultPieDataset的使用方式

实例化:

    DefaultPieDatasetdataset=newDefaultPieDataset();

增加修改操作:

    dataset.setValue(Comparablekey,doublevalue);

删除操作:

    dataset.remove(Comparablekey);

查询操作:

    dataset.getKey(intitem);

或者

dataset.getValue(intitem);

(1)3D饼状图

    对应的工厂方法为createPieChart3D,参数与平面饼状图相同。与平面饼状图的差别在于Plot对象是PiePlot3D类型,不再详述。

3多重饼状图

1)多重平面饼状图

生成多重平面饼状图:

JFreeChartchart=ChartFactory.createMultiplePieChart (String title,//图标题

CategoryDataset dataset,//数据源

TableOrder order,//指定提取数据的方式(按行或者按列)

Boolean legend,//是否显示图例

boolean tooltips,//是否显示tooltip

boolean urls)   //是否指定url

多重平面饼状图的Plot对象是MultiplePiePlot类型。MultiplePiePlot对象没有x轴对象、y轴对象、绘制单元对象,数据源是CategoryDataset对象。MultiplePiePlot对象中可以含有多个子JFreeChart对象,子JFreeChart对象是上面讲过的饼状图对象。

获取MultiplePiePlot对象操作为:

MultiplePiePlot plotMain = (MultiplePiePlot)chart.getPlot();

获取子JFreeChart的操作为:

       JfreeChart childChart = plotMain.getPieChart();

获取数据源:

CategoryDataset dataset = plotMain.getDataset();

2)多重3D饼状图

    对应的工厂方法为createMultiplePieChart3D,该方法的参数与多重平面饼状图相同。多重3D饼状图的Plot对象是MultiplePiePlot类型。MultiplePiePlot对象中可以含有多个子JFreeChart对象,子JFreeChart对象是上面讲过的3D饼状图对象。

4线图

1)平面线图

    生成平面线图:

JFreeChartchart=ChartFactory.createLineChart(String title,//图标题

String categoryAxisLabel,//x轴标题

String valueAxisLabel,//y轴标题

CategoryDataset dataset,//数据源

PlotOrientation orientation,//显示方向

Boolean legend,//是否显示图例

Boolean tooltips,//是否显示tooltip

Boolean urls);//是否指定url

平面线图除了的Plot对象中绘制单元对象是LineAndShapeRenderer对象,其他一切组成对象与平面柱状图相同。

获取Renderer操作:

LineAndShapeRenderer renderer = (LineAndShapeRenderer)plot.getRenderer();

其他参考平面柱状图。

23D线图

对应工厂方法为createLineChart3D,参数与createLineChart相同。3D线图的组成对象除了绘制单元对象是LineAndShapeRenderer3D对象,其他一切组成对象与3D柱状图相同。

5时序图

生成时序图:

JfreeChartchart = ChartFactory.createTimeSeriesChart(String title,//图标题

String timeAxisLabel,//x轴标题

String valueAxisLabel,//y轴标题

XYDataset dataset,//数据源

Boolean legend,//是否显示图例

Boolean tooltips,//是否显示tooltip

Boolean urls);//是否指定url

时序图的Plot对象是XYPlot类型。XYPlot对象的x轴是DateAxis对象,y轴是NumberAxis对象,绘制单元是XYLineAndShapeRenderer对象,数据源是XYDataset对象。

Plot对象的获取操作:

       XYPlot plot = (XYPlot)chart.getPlot();

X轴对象的获取操作:

       DateAxis xAxis = (DateAxis)plot.getDomainAxis();

Y轴对象的获取操作:

       NumberAxis yAxis = (NumberAxis)plot.getRangeAxis();

Renderer对象的获取操作:

       XYItemRenderer renderer = plot.getRenderer();

时序图可以接受一切XYDataset类型的数据源,下面讲解一下常用的XYDataset类型TimeSeriesCollection的使用方式。

实例化:

       TimeSeriesCollection dataset = newTimeSeriesCollection();

添加数据操作:

       dataset.addSeries(TimeSeries);//后面讲解TimeSeries对象

删除数据操作:

       dataset.removeSeries(intindex);

查询数据操作:

       dataset.getSeries(intseries);

TimeSeries对象操作

实例化:

       TimeSeries ts = TimeSeries(Stringname,ClasstimePeriodClass);

增加数据操作:

       ts.add(RegularTimePeriod period,double value);

删除数据操作:

       ts.delete(RegularTimePeriod period);

修改数据操作:

       ts.update(RegularTimePeriod period,Number value);

查询数据操作:

    ts.getValue(RegularTimePeriodperiod);

RegularTimePeriodJFreeChart提供的时间模板类,它有很多具体的时间类,比如:MinuteSecondHourDay……等,不再详述。

posted on 2010-07-20 20:33 donghang73 阅读(1208) 评论(0)  编辑  收藏 所属分类: 学习笔记

只有注册用户登录后才能发表评论。


网站导航: