zoukankan      html  css  js  c++  java
  • 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、运行结果

  • 相关阅读:
    特殊的空格-ASCII码值160
    动态行转列且一行转多列
    SQL事务
    String.Join 方法
    jQuery multiselect初始化默认值及多选项保存到数据库
    .net使用 SmtpClient 发邮件
    养气
    springboot后台解决跨域问题
    服务端解决浏览器跨域问题
    spring_boot 加入 mybatis
  • 原文地址:https://www.cnblogs.com/zfc-java/p/8137365.html
Copyright © 2011-2022 走看看