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