报表应用系列——图表JFreeChart:饼状图
来源:互联网 发布:硬盘阵列数据恢复 编辑:程序博客网 时间:2024/04/26 05:54
3.1. 简单饼图
饼图必须使用DefaultPieDataset为图表提供数据。
3.1. 简单饼图
饼图必须使用DefaultPieDataset为图表提供数据。
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Spring Security", 100);
dataset.setValue("jBPM 4", 200);
dataset.setValue("Ext JS", 300);
dataset.setValue("JFreeChart", 100);
这次我们使用setValue向dataset中添加数据,第一个参数是数据的名称,第二个数据是数据的值。
这里就暴露出JFreeChart的一个问题,竟然不能使用统一的dataset接口来设置数据。
下一步通过CharFactory的createPieChart方法创建饼图。
JFreeChart chart = ChartFactory.createPieChart(
"chart", // 标题
dataset, // 数据
true, // 是否使用legend
false, // 是否使用tooltip
false // 是否使用url链接
);
最后使用CharUtilities将JFreeChart导出成图片。
图 3.1. 简单饼图
完整代码如下所示:
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("Spring Security", 100);
dataset.setValue("jBPM 4", 200);
dataset.setValue("Ext JS", 300);
dataset.setValue("JFreeChart", 100);
JFreeChart chart = ChartFactory.createPieChart("chart", dataset,
true, false, false);
FileOutputStream fos = null;
try {
fos = new FileOutputStream("target/pie1.png");
ChartUtilities.writeChartAsPNG(fos, chart, 400, 300);
} finally {
fos.close();
}
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
- 报表应用系列——图表JFreeChart:饼状图
- java做图表(报表)--JFreeChart综合应用
- 报表 —— JFreeChart
- JFreeChart—输出组合图表
- 【POI】POI+JFREECHART实现图表报表
- JFreeChart 高级应用 一 定制图表
- ActiveReports 报表应用教程 (3)---图表报表
- ActiveReports 报表应用教程 (3)---图表报表
- ActiveReports 报表应用教程 (3)---图表报表
- JAVA平台开放图表绘制类库——JFreeChart
- 【demo积累】— 使用JFreeChart创建基于web的图表
- JFreeChart图表
- JFreeChart logoJava图表 JFreeChart
- spagobi系列文章-07 自定义报表(图表)
- JFreeChart—输出饼状图
- JFreeChart 高级应用 一 图表条目标签(Item Label)
- JAVA基础应用——JFreeChart 使用
- axlsx报表工具(三)——创建图表
- JS的正则表达式
- flyinghearts《编程之美》读书笔记连载(10)(转)
- JFreeChart 多饼图乱码和iText转PDF乱码问题
- SQL参数化查询讲座 (六)
- “找不到可安装的ISAM”连接access
- 报表应用系列——图表JFreeChart:饼状图
- java中用dom解析xml的经典入门级文档
- 入门
- 新人
- ParseXML
- jsp
- xml
- 不怀恶意
- Winsock笔记