报表应用系列——图表JFreeChart: 第 3 章 饼状图
2009-09-22 00:00:00 来源:WEB开发网3.2. 炸开的饼图
把饼图中的某一部分提取出来,强调显示。
调用PiePlot中的setExplodePercent方法来实现这一功能。
PiePlot plot = (PiePlot) chart.getPlot();
plot.setExplodePercent("JFreeChart", 0.3);
这里又暴露出一个JFreeChart里的问题,获得Plot也要强制转换成对应的类型才能使用。
图 3.2. 炸开的饼图
3.3. 处理空值和负值
如果设置了值为0或null的值,图表中会显示标签,但是我们看不到数值。
dataset.setValue("null", null);
dataset.setValue("zero", 0);
图 3.3. 空值和负值
如果不希望在图表中显示为空的数据,需要调用PiePlot的两个方法。
plot.setIgnoreZeroValues(true);
plot.setIgnoreNullValues(true);
JFreeChart会一直忽略负值,不需要特殊处理就不会显示在图表中。
3.4. 三维饼图
将createPieChart替换为createPieChart3D就可以实现三维饼图。
图 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
);
图 3.5. 多重报表
TODO:
color
outlines
label
更多精彩
赞助商链接