WEB开发网
开发学院软件开发Java 报表应用系列——图表JFreeChart: 第 3 章 饼状图... 阅读

报表应用系列——图表JFreeChart: 第 3 章 饼状图

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: 3.2.炸开的饼图把饼图中的某一部分提取出来,强调显示,报表应用系列——图表JFreeChart: 第 3 章 饼状图(2),调用PiePlot中的setExplodePercent方法来实现这一功能,PiePlotplot=(PiePlot)chart.getPlot();plot.setEx

3.2. 炸开的饼图

把饼图中的某一部分提取出来,强调显示。

调用PiePlot中的setExplodePercent方法来实现这一功能。

PiePlot plot = (PiePlot) chart.getPlot(); 
plot.setExplodePercent("JFreeChart", 0.3); 

这里又暴露出一个JFreeChart里的问题,获得Plot也要强制转换成对应的类型才能使用。

报表应用系列——图表JFreeChart: 第 3 章 饼状图

图 3.2. 炸开的饼图

3.3. 处理空值和负值

如果设置了值为0或null的值,图表中会显示标签,但是我们看不到数值。

dataset.setValue("null", null); 
dataset.setValue("zero", 0); 

报表应用系列——图表JFreeChart: 第 3 章 饼状图

图 3.3. 空值和负值

如果不希望在图表中显示为空的数据,需要调用PiePlot的两个方法。

plot.setIgnoreZeroValues(true); 
plot.setIgnoreNullValues(true); 

JFreeChart会一直忽略负值,不需要特殊处理就不会显示在图表中。

3.4. 三维饼图

将createPieChart替换为createPieChart3D就可以实现三维饼图。

报表应用系列——图表JFreeChart: 第 3 章 饼状图

图 3.4. 三维饼图

3.5. 多重饼图

要想使用多重饼图,必须先把PieDataset改成CategoryDataset。

DefaultCategoryDataset dataset = new DefaultCategoryDataset(); 
dataset.addValue(100, "Spring Security", "Jan"); 
dataset.addValue(200, "jBPM 4", "Jan"); 
dataset.addValue(300, "Ext JS", "Jan"); 
dataset.addValue(100, "JFreeChart", "Jan"); 
dataset.addValue(60, "Spring Security", "Fer"); 
dataset.addValue(100, "jBPM 4", "Fer"); 
dataset.addValue(340, "Ext JS", "Fer"); 
dataset.addValue(130, "JFreeChart", "Fer"); 

第二步,使用createMultiplePieChart生成多重报表。

JFreeChart chart = ChartFactory.createMultiplePieChart( 
  "chart", 
  dataset, 
  TableOrder.BY_COLUMN, // 按列分割饼图,addValue中的第三个参数 
  true, 
  false, 
  false 
); 

报表应用系列——图表JFreeChart: 第 3 章 饼状图

图 3.5. 多重报表

TODO:

color

outlines

label

上一页  1 2 

Tags:报表 应用 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接