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轴的显示特性修改不再一一介绍。
(2)3D柱状图
对应的工厂方法为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();
其他参考平面柱状图。
(2)3D线图
对应工厂方法为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);
类RegularTimePeriod是JFreeChart提供的时间模板类,它有很多具体的时间类,比如:Minute、Second、Hour、Day……等,不再详述。
posted on 2010-07-20 20:33
donghang73 阅读(1217)
评论(0) 编辑 收藏 所属分类:
学习笔记