JFreeChart 之饼图

蹲街弑〆低调 提交于 2019-12-17 14:36:12

JFreeChart 之饼图

一、JFreeChart 简介

  JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

二、JFreeChart 的使用

  官方网站:http://www.jfree.org/

  下载地址:https://sourceforge.net/projects/jfreechart/files/1.%20JFreeChart/

1、拷贝相关的 Jar (jcommon-1.0.23.jar和jfreechart-1.0.19.jar)到 Java 项目中

2、饼图示例(PieChart3D.java

 1 package cn.com.zfc.jfreechart;
 2 
 3 import java.awt.Font;
 4 import java.io.File;
 5 import java.io.IOException;
 6 
 7 import org.jfree.chart.ChartFactory;
 8 import org.jfree.chart.ChartFrame;
 9 import org.jfree.chart.ChartUtilities;
10 import org.jfree.chart.JFreeChart;
11 import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
12 import org.jfree.chart.plot.PiePlot3D;
13 import org.jfree.data.general.DefaultPieDataset;
14 
15 /**
16  * @describe 使用JFreeChart 技术画饼图
17  * @author zfc
18  * @date 2017年12月27日 下午4:43:07
19  */
20 public class PieChart3D {
21     public static void main(String[] args) {
22         /* 1、创建饼形图数据集对象 DefaultPieDataset */
23         DefaultPieDataset dataset = new DefaultPieDataset();
24         /* 2、往饼形图数据集对象 DefaultPieDataset 中添加数据 */
25         dataset.setValue("张三", 40);
26         dataset.setValue("李四", 32);
27         dataset.setValue("王五", 28);
28 
29         /* 3、创建图形对象 JFreeChart:主标题的名称,图标显示的数据集合,是否显示子标题,是否生成提示的标签,是否生成URL链接 */
30         String title = "比重统计报表(所属单位)";
31         JFreeChart chart = ChartFactory.createPieChart3D(title, dataset, true, true, true);
32 
33         /* 4、处理乱码 */
34         // 处理主标题的乱码
35         chart.getTitle().setFont(new Font("宋体", Font.BOLD, 18));
36         // 处理子标题乱码
37         chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15));
38         /* 5、获取饼形图图表区域对象 PiePlot3D */
39         PiePlot3D categoryPlot = (PiePlot3D) chart.getPlot();
40         /* 6、处理图像上的乱码 */
41         categoryPlot.setLabelFont(new Font("宋体", Font.BOLD, 15));
42         /* 7、设置图形的生成数据格式为(张三 40 (40%)) */
43         String format = "{0} {1} ({2})";
44         categoryPlot.setLabelGenerator(new StandardPieSectionLabelGenerator(format));
45 
46         /* 8、生成相应的图片 */
47         File file = new File("I:/PieChart3D.JPEG");
48         try {
49             ChartUtilities.saveChartAsJPEG(file, chart, 800, 600);
50         } catch (IOException e) {
51             e.printStackTrace();
52         }
53 
54         /* 9、使用 ChartFrame 对象显示图像:title是标题,chart是前面程序JFreeChart定义的变量名,true表示是否设置滚动条 */
55         title = "zfc";
56         ChartFrame chartFrame = new ChartFrame(title, chart, true);
57         // 图形是否可见
58         chartFrame.setVisible(true);
59         // 以合适的大小展现图形
60         chartFrame.pack();
61     }
62 
63 }

3、运行结果

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!