2)3D 柱状图
对应的工厂方法为 createBarChart3D ,该方法的参数与平面柱状图相同。 3D 柱状图的 Plot 对象是 CategoryPlot 类型。 CategoryPlot 对象的 x 轴是CategoryAxis3D 对象, y 轴是 NumberAxis3D 对象,绘制单元是 BarRenderer3D 对象,数据源是 CategoryDataset 对象。
具体使用以及操作与平面柱状图雷同,不在详述。
2、饼状图
(1) 平面饼状图
生成平面饼状图:
- JFreeChart chart = 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 的使用方式
实例化:
- DefaultPieDataset dataset = new DefaultPieDataset();
增加修改操作:
- dataset. setValue(Comparable key, double value);
删除操作:
- dataset. remove(Comparable key);
查询操作:
- dataset. getKey(int item);
或者
- dataset. getValue(int item);
1)3D 饼状图
对应的工厂方法为 createPieChart3D ,参数与平面饼状图相同。与平面饼状图的差别在于 Plot 对象是PiePlot3D类型 ,不再详述。
3、多重饼状图
1)多重平面饼状图
生成多重平面饼状图:
- JFreeChart chart = 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)平面线图
生成平面线图:
- JFreeChart chart = 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、时序图
生成时序图:
- JFreeChart chart = 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=new TimeSeriesCollection();
添加数据操作:
- dataset. addSeries(TimeSeries); // 后面讲解 TimeSeries 对象
删除数据操作:
- dataset. removeSeries(int index);
查询数据操作:
- dataset. getSeries(int series);
TimeSeries 对象操作
实例化:
- TimeSeries ts=TimeSeries(String name, Class timePeriodClass);
增加数据操作:
- ts. add(RegularTimePeriod period, double value);
删除数据操作:
- ts. delete(RegularTimePeriod period);
修改数据操作:
- ts. update(RegularTimePeriod period, Number value);
查询数据操作:
- ts. getValue(RegularTimePeriod period);
类 RegularTimePeriod 是 JFreeChart 提供的时间模板类,它有很多具体的时间类,比如: Minute 、 Second 、 Hour 、 Day…… 等,不再详述。