jFreeChart利用CategoryDatase,ChartFactory.createBarChart生成的柱状图

Createjfreechartbar 代码   收藏代码spinner.gif
  1. package com.potevio.rnd;  
  2.   
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7.   
  8. import org.jfree.chart.ChartFactory;  
  9. import org.jfree.chart.ChartUtilities;  
  10. import org.jfree.chart.JFreeChart;  
  11. import org.jfree.chart.plot.CategoryPlot;  
  12. import org.jfree.chart.plot.PlotOrientation;  
  13. import org.jfree.data.category.CategoryDataset;  
  14. import org.jfree.data.general.DatasetUtilities;  
  15.   
  16. public class CreateJFreeChartBar {     
  17.     
  18.     /**    
  19.      * 创建JFreeChart Bar Chart(柱状图)    
  20.      */    
  21.     public static void main(String[] args) {     
  22.         //步骤1:创建CategoryDataset对象(准备数据)     
  23.         CategoryDataset dataset = createDataset();     
  24.         //步骤2:根据Dataset 生成JFreeChart对象,以及做相应的设置     
  25.         JFreeChart freeChart = createChart(dataset);     
  26.         //步骤3:将JFreeChart对象输出到文件,Servlet输出流等     
  27.         saveAsFile(freeChart, "F:\\jfreechart\\bar.png"500400);     
  28.     }     
  29.          
  30.     //保存为文件     
  31.     public static void saveAsFile(JFreeChart chart, String outputPath, int weight, int height) {     
  32.         FileOutputStream out = null;     
  33.         try {     
  34.             File outFile = new File(outputPath);     
  35.             if (!outFile.getParentFile().exists()) {     
  36.                 outFile.getParentFile().mkdirs();     
  37.             }     
  38.             out = new FileOutputStream(outputPath);     
  39.             //保存为PNG文件     
  40.             ChartUtilities.writeChartAsPNG(out, chart, weight, height);     
  41.             //保存为JPEG文件     
  42.             //ChartUtilities.writeChartAsJPEG(out, chart, weight, height);     
  43.             out.flush();     
  44.         } catch (FileNotFoundException e) {     
  45.             e.printStackTrace();     
  46.         } catch (IOException e) {     
  47.             e.printStackTrace();     
  48.         } finally {     
  49.             if (out != null) {     
  50.                 try {     
  51.                     out.close();     
  52.                 } catch (IOException e) {     
  53.                     //do nothing     
  54.                 }     
  55.             }     
  56.         }     
  57.     }     
  58.     
  59.     //根据CategoryDataset生成JFreeChart对象     
  60.     public static JFreeChart createChart(CategoryDataset categoryDataset) {     
  61.         JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo",    //标题     
  62.                 "产品",    //categoryAxisLabel (category轴,横轴,X轴的标签)     
  63.                 "数量",    //valueAxisLabel(value轴,纵轴,Y轴的标签)     
  64.                 categoryDataset, // dataset     
  65.                 PlotOrientation.VERTICAL,     
  66.                 true, // legend     
  67.                 false, // tooltips     
  68.                 false); // URLs     
  69.              
  70.         //以下的设置可以由用户定制,也可以省略     
  71.         CategoryPlot  plot = (CategoryPlot) jfreechart.getPlot();     
  72.         //背景色 透明度     
  73.         plot.setBackgroundAlpha(0.5f);     
  74.         //前景色 透明度     
  75.         plot.setForegroundAlpha(0.5f);     
  76.         //其它设置可以参考 CategoryPlot     
  77.              
  78.         return jfreechart;     
  79.     }     
  80.     
  81.     /**    
  82.      * 创建CategoryDataset对象    
  83.      *     
  84.      */    
  85.     public static CategoryDataset createDataset() {     
  86.              
  87.         String []rowKeys = {"One""Two""Three"};     
  88.         String []colKeys = {"1987""1997""2007"};     
  89.              
  90.         double [][] data = {     
  91.                 {502030},     
  92.                 {20, 10D, 40D},     
  93.                 {4030.0008D, 38.24D},     
  94.         };     
  95.              
  96.         //也可以使用以下代码     
  97.         //DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();     
  98.         //categoryDataset.addValue(10"rowKey""colKey");     
  99.              
  100.         return DatasetUtilities.createCategoryDataset(rowKeys, colKeys, data);             
  101.     }     
  102.     
  103. }  
package com.potevio.rnd;

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;

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, "F:\\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, weight, height);   
            //保存为JPEG文件   
            //ChartUtilities.writeChartAsJPEG(out, chart, weight, height);   
            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   
           
        //以下的设置可以由用户定制,也可以省略   
        CategoryPlot  plot = (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);           
    }   
  
}

运行效果图:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值