`

JFreeChart使用 之 IT 分享心得

 
阅读更多

    2012年4月17日,嘿嘿,公司做到报表问题,结合公司,使用了JFreeChart,自己花了一个上午学习,总结一点出来了,希望能对所有在IT新接触人员有所帮助!

    首先,去官方网站:

  http://www.jfree.org/jfreechart/  下载,获取jar

 

 public class Test {

 /**
  * @author 钟艳明   QQ:962589149

  */
 public static void main(String[] args) {
  Test test=new Test();
  test.disPlay();
  test.display2();
  test.display3();
  test.display4(null);
 }
 //圆饼形状
 public void display4(CategoryDataset dataset)
 {
  DefaultCategoryDataset cds = new DefaultCategoryDataset();
     cds.setValue(20, "英语1", "英语");
     cds.setValue(10, "数学1", "数学");
     cds.setValue(15, "语文", "语文");
     cds.setValue(25, "d", "物理");
     cds.setValue(30, "e", "化学");
  if(dataset==null)
  {
   dataset=cds;
  }
    JFreeChart chart = ChartFactory.createBarChart("课程分布图","课程", "比例", dataset,   PlotOrientation.VERTICAL, true, true, true);
    CategoryPlot plot = chart.getCategoryPlot();
    CategoryAxis domainAxis = plot.getDomainAxis();//x轴
    ValueAxis numberaxis = plot.getRangeAxis(); //y轴
    TextTitle t = chart.getTitle();
    t.setFont(new Font("宋体",Font.BOLD,40));//标题文字
    domainAxis.setLabelFont(new Font("宋体",Font.BOLD,20));//x轴标题文字
    domainAxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//x轴坐标上文字
    numberaxis.setLabelFont(new Font("宋体",Font.BOLD,20));//y轴标题文字
    numberaxis.setTickLabelFont(new Font("黑体",Font.BOLD,10));//y轴坐标上文字
    chart.getLegend().setItemFont(new Font("黑体",Font.BOLD,12));//图例文字
    ChartFrame  frame=new ChartFrame ("CityInfoPort公司组织架构图 ",chart,true);
       frame.pack();
       frame.setVisible(true);

 }
 //保存为图片
 public void display3()
 {
  try{
   //初始化数据
   double[][] data = new double[][] {{1310, 1220, 1110, 1000},{720, 700, 680, 640},{1130, 1020, 980, 800},{440, 400, 360, 300}};
   String[] rowKeys = {"猪肉", "niurou","鸡肉", "鱼肉"};
   String[] columnKeys = {"广州", "shenzhen", "东莞", "佛山"};
   //创建数据源
   CategoryDataset dataset=DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
   //创建折线图
      JFreeChart chart = ChartFactory.createBarChart3D("全国食物统计","肉类","销量",dataset,PlotOrientation.VERTICAL,true,true,false);
      //获取绘图对象
      CategoryPlot plot = chart.getCategoryPlot();
      //获取X  Y轴
      CategoryAxis domainAxis = plot.getDomainAxis();
      NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
      //解决标题乱码
      chart.getTitle().setFont(new Font("宋体",Font.BOLD,16));
      //解决X轴乱码
      domainAxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
      domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
      //解决Y轴乱码
      numberaxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
      numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
      //解决底部乱码问题
      chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 16));

   //图片保存路径
   String imageURL ="D://yanming/201200021233.png";
   FileOutputStream jpg = null;
   jpg = new FileOutputStream(imageURL);
   int width=630;
   int height=400;
   ChartUtilities.writeChartAsPNG(jpg, chart, width,height);
   System.out.println("图片创建成功!");
  }catch(Exception ex)
  {
   ex.printStackTrace();
  }
  
 }
 //第二种显示方式
 public void display2()
 {
  //初始化
  double[][] data = new double[][] {{1310, 1220, 1110, 1000},{720, 700, 680, 640},{1130, 1020, 980, 800},{440, 400, 360, 300}};
  String[] rowKeys = {"猪肉", "niurou","鸡肉", "鱼肉"};
  String[] columnKeys = {"广州", "shenzhen", "东莞", "佛山"};
  //创建数据源
  CategoryDataset dataset=DatasetUtilities.createCategoryDataset(rowKeys, columnKeys,data);
  //创建折线图
    JFreeChart chart = ChartFactory.createBarChart3D("全国食物统计","肉类","销量",dataset,PlotOrientation.VERTICAL,true,true,false);
    //获取绘图对象
    CategoryPlot plot = chart.getCategoryPlot();
    //获取X  Y轴
    CategoryAxis domainAxis = plot.getDomainAxis();
    NumberAxis numberaxis = (NumberAxis) plot.getRangeAxis();
    //解决标题乱码
    chart.getTitle().setFont(new Font("宋体",Font.BOLD,16));
    //解决X轴乱码
    domainAxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
    domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
    //解决Y轴乱码
    numberaxis.setLabelFont(new Font("宋体",Font.PLAIN, 16));
    numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
    //解决底部乱码问题
    chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 16));

    ChartFrame  frame=new ChartFrame ("CityInfoPort公司组织架构图 ",chart,true);
       frame.pack();
       frame.setVisible(true);
 }
 //最简单的一种现实方式,传入的是一个map
 public void disPlay()
 {
  // TODO 自动生成方法存根
  DefaultPieDataset dfp=new DefaultPieDataset();
        dfp.setValue("管理人员", 25);
        dfp.setValue("市场人员", 35);
        dfp.setValue("开发人员", 20);
        dfp.setValue("后勤人员", 5);
        dfp.setValue("财务人员", 15);
         //Create JFreeChart object
       JFreeChart chart =ChartFactory.createPieChart("CityInfoPort公司组织架构图",dfp, true, true, true);
       //解决乱码问题 标题
       //乱码解决开始
       TextTitle textTitle = chart.getTitle();  
       textTitle.setFont(new Font("宋体", Font.PLAIN, 20)); //标题文字乱码
       PiePlot plot=(PiePlot)chart.getPlot();
       plot.setLabelFont(new Font("宋体",Font.BOLD,20));//饼上的文字乱码

       chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); //图例文字乱码
      //乱码解决结束


       ChartFrame  frame=new ChartFrame ("CityInfoPort公司组织架构图 ",chart,true);
       frame.setFont(new Font("宋体", Font.BOLD, 15));
       frame.pack();
       frame.setVisible(true);
 }

}

 

下面是效果图





 
 
 

  • 大小: 27.2 KB
  • 大小: 18.2 KB
  • 大小: 5.4 KB
分享到:
评论

相关推荐

    JFreeChart使用心得+列子

    本文将分享JFreeChart的使用心得,并提供一个在Web应用下的实际例子。 首先,理解JFreeChart的基本架构至关重要。JFreeChart的核心是`ChartFactory`类,它提供了创建不同类型图表的静态方法。例如,`createBarChart...

    JFreeChart使用心得.pdf

    ### JFreeChart 使用心得 #### 一、JFreeChart 的介绍与获取 JFreeChart 是一个功能强大的开源 Java 图表库,支持多种图表类型,包括但不限于条形图、饼图、雷达图、K线图等。它适用于客户端/服务器 (C/S)、浏览器...

    JFreeChart使用详细教程

    JFreeChart使用详细教程

    JFreeChart使用教程(中文)

    JFreeChart 使用教程(中文) JFreeChart 是一个功能强大、灵活易用的 Java 绘图 API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在 Swing 和 Web 等中制作自定义的图表或报表...

    JFreeChart使用的jar包

    JFreeChart的使用,需要导入的2个jar文件: jcommon-1.0.23.jar和jfreechart-1.0.19.jar。 可以去官网下载:http://sourceforge.net/projects/jfreechart/files/ 上传以作后续使用时备份.

    jfreechart使用的3个jar包

    **JFreeChart 使用详解** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种复杂的图表,如折线图、柱状图、饼图、散点图以及更专业的图表类型,如甘特图和雷达图。在Java应用中,如果你...

    JFreeChart使用指南

    **JFreeChart 使用指南** JFreeChart 是一个用于 Java 的开源图表库,它提供了一种简单的方法来创建各种图表,包括折线图、柱状图、饼图、散点图等,广泛应用于数据分析和报告中。这篇指南将深入探讨如何有效地使用...

    JFreeChart使用教程(中文).pdf

    JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够 用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...

    JFreeChart使用教程(含下载、安装)

    JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...

    JFreeChart使用总结

    ### JFreeChart使用总结 #### 一、JFreeChart简介 JFreeChart是一个强大的Java图表绘制库,由JFree组织开发并维护。该库提供了一系列丰富的API,支持开发者创建多种类型的图表,包括但不限于饼图、柱状图、线图、...

    jfreechart使用必须用到的包

    在使用JFreeChart时,通常会依赖两个核心的jar文件:`jfreechart.jar`和`jcommon.jar`。 1. `jfreechart.jar`: 这是JFreeChart的主要库文件,包含了所有用于创建、定制和展示图表的类和方法。你可以通过这个包来...

    JFreeChart 使用

    **JFreeChart 使用详解** JFreeChart 是一个用于Java平台的开源图表库,它提供了丰富的图表类型,包括柱状图、折线图、饼图、散点图等,广泛应用于数据可视化和报告生成。在本篇文章中,我们将深入探讨如何使用...

Global site tag (gtag.js) - Google Analytics