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、运行结果
由于本人技术有限,有不足之处,请指出,谢谢!!!欢迎评论。。。