moonights 发表于 2013-2-5 02:17:39

收藏整理—JFreeChart 入门实例

 1)使用JFreeChart开发Bar Chart(柱状图)
JFreeChart开发一个柱状图非常简单,大致分以下三步:
步骤1:创建CategoryDataset对象(准备数据)
步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置
步骤3:将JFreeChart对象输出到文件,Servlet输出流等

CreateJFreeChartBar.java:
 
package com.moonights.demo.jfreechart;import java.io.File;   import java.io.FileNotFoundException;   import java.io.FileOutputStream;   import java.io.IOException;   import org.jfree.chart.ChartFactory;   import org.jfree.chart.ChartUtilities;   import org.jfree.chart.JFreeChart;   import org.jfree.chart.plot.CategoryPlot;   import org.jfree.chart.plot.PlotOrientation;   import org.jfree.data.category.CategoryDataset;   import org.jfree.data.general.DatasetUtilities;   //JFreeChart Bar Chart(柱状图)   public class CreateJFreeChartBar {         /**       * 创建JFreeChart Bar Chart(柱状图)       */      public static void main(String[] args) {         //步骤1:创建CategoryDataset对象(准备数据)         CategoryDataset dataset = createDataset();         //步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置         JFreeChart freeChart = createChart(dataset);         //步骤3:将JFreeChart对象输出到文件,Servlet输出流等         saveAsFile(freeChart, "c:\\jfreechart\\bar.png", 500, 400);       }            //保存为文件       public static void saveAsFile(JFreeChart chart, String outputPath, int weight, int height) {         FileOutputStream out = null;         try {               File outFile = new File(outputPath);               if (!outFile.getParentFile().exists()) {                   outFile.getParentFile().mkdirs();               }               out = new FileOutputStream(outputPath);               //保存为PNG文件               ChartUtilities.writeChartAsPNG(out, chart, 300, 200);               //保存为JPEG文件               //ChartUtilities.writeChartAsJPEG(out, chart, 500, 400);               out.flush();         } catch (FileNotFoundException e) {               e.printStackTrace();         } catch (IOException e) {               e.printStackTrace();         } finally {               if (out != null) {                   try {                     out.close();                   } catch (IOException e) {                     //do nothing                   }               }         }       }         //根据CategoryDataset生成JFreeChart对象       public static JFreeChart createChart(CategoryDataset categoryDataset) {         JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo",    //标题                   "产品",    //categoryAxisLabel (category轴,横轴,X轴的标签)                   "数量",    //valueAxisLabel(value轴,纵轴,Y轴的标签)                   categoryDataset, // dataset                   PlotOrientation.VERTICAL,                   true, // legend                   false, // tooltips                   false); // URLs                      //以下的设置可以由用户定制,也可以省略         CategoryPlotplot = (CategoryPlot) jfreechart.getPlot();         //背景色 透明度         plot.setBackgroundAlpha(0.5f);         //前景色 透明度         plot.setForegroundAlpha(0.5f);         //其它设置可以参考 CategoryPlot                      return jfreechart;       }         /**       * 创建CategoryDataset对象       *      */      public static CategoryDataset createDataset() {                      String []rowKeys = {"One", "Two", "Three"};         String []colKeys = {"1987", "1997", "2007"};                      double [][] data = {                   {50, 20, 30},                   {20, 10D, 40D},                   {40, 30.0008D, 38.24D},         };                      //也可以使用以下代码         //DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();         //categoryDataset.addValue(10, "rowKey", "colKey");                      return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);               }   } 
执行后,可以发现生成了C:\jfreechart\bar.png文件
页: [1]
查看完整版本: 收藏整理—JFreeChart 入门实例