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、运行结果

  • 相关阅读:
    PAIRING WORKFLOW MANAGER 1.0 WITH SHAREPOINT 2013
    Education resources from Microsoft
    upgrade to sql server 2012
    ULSViewer sharepoint 2013 log viewer
    Top 10 Most Valuable Microsoft SharePoint 2010 Books
    讨论 Setsockopt选项
    使用 Alchemy 技术编译 C 语言程序为 Flex 可调用的 SWC
    Nagle's algorithm
    Nagle算法 TCP_NODELAY和TCP_CORK
    Design issues Sending small data segments over TCP with Winsock
  • 原文地址:https://www.cnblogs.com/zfc-java/p/8137365.html
Copyright © 2011-2022 走看看