使用JFreeChart生成柱状图和饼图

需要导入的jar包

生成柱状图

  
  
  
  
  1.  import java.awt.Font; 
  2. import java.io.FileOutputStream; 
  3. import java.io.IOException; 
  4.  
  5. import org.jfree.chart.ChartFactory; 
  6. import org.jfree.chart.ChartUtilities; 
  7. import org.jfree.chart.JFreeChart; 
  8. import org.jfree.chart.StandardChartTheme; 
  9. import org.jfree.chart.plot.PlotOrientation; 
  10. import org.jfree.data.category.CategoryDataset; 
  11. import org.jfree.data.category.DefaultCategoryDataset; 
  12.  /**  
  13.  * 该类用于演示最简单的柱状图生成 
  14.  * @author Winter Lau  
  15.  */  
  16.  public class BarChartDemo {  
  17.      public static void main(String[] args) throws IOException{  
  18.         //创建主题样式      
  19.          StandardChartTheme standardChartTheme=new StandardChartTheme("CN");      
  20.          //设置标题字体      
  21.          standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));      
  22.          //设置图例的字体      
  23.          standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));      
  24.          //设置轴向的字体      
  25.          standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));      
  26.          //应用主题样式      
  27.          ChartFactory.setChartTheme(standardChartTheme);  
  28.          CategoryDataset dataset = getDataSet();  
  29.          JFreeChart chart = ChartFactory.createBarChart3D(  
  30.                             "水果产量图"// 图表标题 
  31.                             "水果"// 目录轴的显示标签 
  32.                             "产量"// 数值轴的显示标签 
  33.                              dataset, // 数据集 
  34.                              PlotOrientation.VERTICAL, // 图表方向:水平、垂直 
  35.                              true,  // 是否显示图例(对于简单的柱状图必须是 false) 
  36.                              false// 是否生成工具 
  37.                              false  // 是否生成 URL 链接 
  38.                              );  
  39.                              
  40.          FileOutputStream fos_jpg = null;  
  41.          try {  
  42.              fos_jpg = new FileOutputStream("D:\\fruit.jpg");  
  43.              ChartUtilities.writeChartAsJPEG(fos_jpg,chart,400,300);  
  44.          } finally {  
  45.              try {  
  46.                  fos_jpg.close();  
  47.              } catch (Exception e) {}  
  48.          }  
  49.      }  
  50.      /**  
  51.      * 获取一个演示用的简单数据集对象 
  52.      * @return  
  53.      */  
  54.      private static CategoryDataset getDataSet() {  
  55.          DefaultCategoryDataset dataset = new DefaultCategoryDataset();  
  56.          dataset.addValue(100"""苹果");  
  57.          dataset.addValue(200"""梨子");  
  58.          dataset.addValue(300"""葡萄");  
  59.          dataset.addValue(400"""香蕉");  
  60.          dataset.addValue(500"""荔枝");  
  61.          return dataset;  
  62.      }  
  63.      /**  
  64.      * 获取一个演示用的组合数据集对象 
  65.      * @return  
  66.      */  
  67.      private static CategoryDataset getDataSet2() {  
  68.          DefaultCategoryDataset dataset = new DefaultCategoryDataset();  
  69.          dataset.addValue(100"北京""苹果");  
  70.          dataset.addValue(100"上海""苹果");  
  71.          dataset.addValue(100"广州""苹果");  
  72.          dataset.addValue(200"北京""梨子");  
  73.          dataset.addValue(200"上海""梨子");  
  74.          dataset.addValue(200"广州""梨子");  
  75.          dataset.addValue(300"北京""葡萄");  
  76.          dataset.addValue(300"上海""葡萄");  
  77.          dataset.addValue(300"广州""葡萄");  
  78.          dataset.addValue(400"北京""香蕉");  
  79.          dataset.addValue(400"上海""香蕉");  
  80.          dataset.addValue(400"广州""香蕉");  
  81.          dataset.addValue(500"北京""荔枝");  
  82.          dataset.addValue(500"上海""荔枝");  
  83.          dataset.addValue(500"广州""荔枝");  
  84.          return dataset;  
  85.      }  
  86.  }  

生成饼图

  
  
  
  
  1.  import java.awt.Font; 
  2. import java.io.FileOutputStream; 
  3. import java.io.IOException; 
  4.  
  5. import org.jfree.chart.ChartFactory; 
  6. import org.jfree.chart.ChartUtilities; 
  7. import org.jfree.chart.JFreeChart; 
  8. import org.jfree.chart.StandardChartTheme; 
  9. import org.jfree.data.general.DefaultPieDataset; 
  10.  /**  
  11.  * 用于演示饼图的生成 
  12.  * @author Winter Lau  
  13.  */  
  14.  public class PieChartDemo {  
  15.      public static void main(String[] args) throws IOException{  
  16.         //创建主题样式      
  17.          StandardChartTheme standardChartTheme=new StandardChartTheme("CN");      
  18.          //设置标题字体      
  19.          standardChartTheme.setExtraLargeFont(new Font("隶书",Font.BOLD,20));      
  20.          //设置图例的字体      
  21.          standardChartTheme.setRegularFont(new Font("宋书",Font.PLAIN,15));      
  22.          //设置轴向的字体      
  23.          standardChartTheme.setLargeFont(new Font("宋书",Font.PLAIN,15));      
  24.          //应用主题样式      
  25.          ChartFactory.setChartTheme(standardChartTheme);  
  26.          DefaultPieDataset data = getDataSet();  
  27.          JFreeChart chart = ChartFactory.createPieChart("水果产量图",  // 图表标题 
  28.          data,  
  29.          true// 是否显示图例 
  30.          false,  
  31.          false  
  32.          );  
  33.          // 写图表对象到文件,参照柱状图生成源码 
  34.          FileOutputStream fos_jpg = null;  
  35.          try {  
  36.              fos_jpg = new FileOutputStream("D:\\fruit.jpg");  
  37.              ChartUtilities.writeChartAsJPEG(fos_jpg,chart,400,300);  
  38.          } finally {  
  39.              try {  
  40.                  fos_jpg.close();  
  41.              } catch (Exception e) {}  
  42.          }  
  43.      }  
  44.      /**  
  45.      * 获取一个演示用的简单数据集对象 
  46.      * @return  
  47.      */  
  48.      private static DefaultPieDataset getDataSet() {  
  49.          DefaultPieDataset dataset = new DefaultPieDataset();  
  50.          dataset.setValue("苹果",100);  
  51.          dataset.setValue("梨子",200);  
  52.          dataset.setValue("葡萄",300);  
  53.          dataset.setValue("香蕉",400);  
  54.          dataset.setValue("荔枝",500);  
  55.          return dataset;  
  56.      }  
  57.  }  

 

你可能感兴趣的:(jfreechart,饼图,柱状图)