深入探究JFreeChart及实例解读(2)

13 篇文章 0 订阅
5 篇文章 0 订阅

2)3D 柱状图

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

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

2、饼状图

(1) 平面饼状图

生成平面饼状图:

 
 
  1. JFreeChart chart = ChartFactory. createPieChart(String title, // 图标题   
  2. PieDataset dataset,       // 数据源   
  3. boolean legend,         // 是否显示图例   
  4. boolean tooltips,         // 是否显示tooltip   
  5. boolean urls) ;          // 是否指定url  

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

获取PiePlot对象操作为:

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

获取数据源:

 
 
  1. PieDataset dataset= plot .getDataset();  

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

实例化:

 
 
  1. DefaultPieDataset dataset = new DefaultPieDataset();  

增加修改操作:

 
 
  1. dataset. setValue(Comparable key, double value);  

删除操作:

 
 
  1. dataset. remove(Comparable key);  

查询操作:

 
 
  1. dataset. getKey(int item);  

或者

 
 
  1. dataset. getValue(int item);  

1)3D 饼状图

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

3、多重饼状图

1)多重平面饼状图

生成多重平面饼状图:

 
 
  1. JFreeChart chart = ChartFactory. createMultiplePieChart   
  2. (String title,               // 图标题   
  3. CategoryDataset dataset,     // 数据源   
  4. TableOrder order,       // 指定提取数据的方式(按行或者按列)   
  5. boolean legend,            // 是否显示图例   
  6. boolean tooltips,            // 是否显示 tooltip   
  7. boolean urls)   ;            // 是否指定 url  

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

MultiplePiePlot 对象中可以含有多个子 JFreeChart 对象,子 JFreeChart 对象是上面讲过的饼状图对象。

获取 MultiplePiePlot 对象操作为:

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

获取子 JFreeChart 的操作为:

 
 
  1. JFreeChart childChart=plotMain.getPieChart();  

获取数据源:

 
 
  1. CategoryDataset dataset= plotMain .getDataset();  

2)多重 3D 饼状图

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

4、线图

1)平面线图

生成平面线图:

 
 
  1. JFreeChart chart = ChartFactory. createLineChart(String title, // 图标题   
  2. String categoryAxisLabel, //x 轴标题   
  3. String valueAxisLabel, //y 轴标题   
  4. CategoryDataset dataset, // 数据源   
  5. PlotOrientation orientation, // 显示方向   
  6. boolean legend, // 是否显示图例   
  7. boolean tooltips, // 是否显示   
  8. tooltip boolean urls); // 是否指定 url  

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

获取 Renderer 操作:

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

其他参考平面柱状图。

2)3D 线图

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

5、时序图

生成时序图:

 
 
  1. JFreeChart chart = ChartFactory.createTimeSeriesChart( String title, // 图标题   
  2. String timeAxisLabel, //x 轴标题   
  3. String valueAxisLabel, //y 轴标题   
  4. XYDataset dataset, // 数据源   
  5. boolean legend, // 是否显示图例   
  6. boolean tooltips, // 是否显示   
  7. tooltip boolean urls); // 是否指定 url  

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

Plot 对象的获取操作:

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

X 轴对象的获取操作:

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

Y 轴对象的获取操作:

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

Renderer 对象的获取操作:

 
 
  1. XYItemRenderer renderer= plot.getRenderer();  

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

实例化:

 
 
  1. TimeSeriesCollection dataset=new TimeSeriesCollection();  

添加数据操作:

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

删除数据操作:

 
 
  1. dataset. removeSeries(int index);  

查询数据操作:

 
 
  1. dataset. getSeries(int series);  

TimeSeries 对象操作

实例化:

 
 
  1. TimeSeries ts=TimeSeries(String name, Class timePeriodClass);  

增加数据操作:

 
 
  1. ts. add(RegularTimePeriod period, double value);  

删除数据操作:

 
 
  1. ts. delete(RegularTimePeriod period);  

修改数据操作:

 
 
  1. ts. update(RegularTimePeriod period, Number value);  

查询数据操作:

 
 
  1. ts. getValue(RegularTimePeriod period);  

类 RegularTimePeriod 是 JFreeChart 提供的时间模板类,它有很多具体的时间类,比如: Minute 、 Second 、 Hour 、 Day…… 等,不再详述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值