jfreechart

public class BarChartDemo    
{

  public static void main(String[] args) throws IOException
  {
    JFreeChart chart = ChartFactory.createBarChart3D(
              "水果產量圖", // 圖表標題
              "水果", // 目錄軸的顯示標籤
              "產量", // 數值軸的顯示標籤
              getDataSet(), // 數據集
              //PlotOrientation.HORIZONTAL , // 圖表方向:水平
              PlotOrientation.VERTICAL , // 圖表方向:垂直
              true,    // 是否顯示圖例(對於簡單的柱狀圖必須是false)
              false,    // 是否生成工具
              false    // 是否生成URL鏈接
              );
                
    FileOutputStream fos = null;

    fos = new FileOutputStream("fruit.jpg");
    ChartUtilities.writeChartAsJPEG(
      fos, //輸出到哪個輸出流
      1, //JPEG圖片的質量,0~1之間
      chart, //統計圖標對象
      800, //寬
      600,//寬
      null //ChartRenderingInfo 信息
      );
    fos.close();
  }

  /**
    * 獲取一個演示用的組合數據集對象
    * @return
    */

  private static CategoryDataset getDataSet()
  {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(100, "北京", "蘋果");
    /*
    添加數據時
    參數1 - 值。
    參數2 - 行key
    參數3 - 列key
    */

    dataset.addValue(100, "上海", "蘋果");
    dataset.addValue(100, "廣州", "蘋果");
    dataset.addValue(200, "北京", "梨子");
    dataset.addValue(200, "上海", "梨子");
    dataset.addValue(200, "廣州", "梨子");
    dataset.addValue(300, "北京", "葡萄");
    dataset.addValue(300, "上海", "葡萄");
    dataset.addValue(300, "廣州", "葡萄");
    dataset.addValue(400, "北京", "香蕉");
    dataset.addValue(400, "上海", "香蕉");
    dataset.addValue(400, "廣州", "香蕉");
    dataset.addValue(500, "北京", "荔枝");
    dataset.addValue(500, "上海", "荔枝");
    dataset.addValue(500, "廣州", "荔枝");
    return dataset;
  }
}
 
 
public class BarChart3DDemo
{
  public static void main(String[] args) throws IOException
  {
    JFreeChart chart = ChartFactory.createBarChart3D(
              "圖書銷量統計圖", // 圖表標題
              "圖書", // 目錄軸的顯示標籤
              "銷量", // 數值軸的顯示標籤
              getDataSet(), // 數據集
              //PlotOrientation.HORIZONTAL , // 圖表方向:水平
              PlotOrientation.VERTICAL , // 圖表方向:垂直
              false,    // 是否顯示圖例(對於簡單的柱狀圖必須是false)
              false,    // 是否生成工具
              false    // 是否生成URL鏈接
              );
                
    //重新設置圖標標題,改變字體
    chart.setTitle(new TextTitle("圖書銷量統計圖", new Font("黑體", Font.ITALIC , 22)));    
    CategoryPlot plot = (CategoryPlot)chart.getPlot();
    //取得橫軸
    CategoryAxis categoryAxis = plot.getDomainAxis();
    //設置橫軸顯示標籤的字體
    categoryAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));
    //分類標籤以45度角傾斜
    categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    categoryAxis.setTickLabelFont(new Font("宋體" , Font.BOLD , 18));
    //取得縱軸
    NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
    //設置縱軸顯示標籤的字體
    numberAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));

    FileOutputStream fos = null;
    fos = new FileOutputStream("book.jpg");
    //將統計圖標輸出成JPG文件
    ChartUtilities.writeChartAsJPEG(
      fos, //輸出到哪個輸出流
      1, //JPEG圖片的質量,0~1之間
      chart, //統計圖標對象
      800, //寬
      600,//寬
      null //ChartRenderingInfo 信息
      );
    fos.close();
  }
  //返回一個CategoryDataset實例
  private static CategoryDataset getDataSet()
  {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(47000 , "" , "Spring2.0寶典");
    dataset.addValue(38000 , "" , "輕量級J2EE企業實戰");
    dataset.addValue(31000 , "" , "基於J2EE的Ajax寶典");
    dataset.addValue(29000 , "" , "JavaScript權威指南");
    dataset.addValue(25000 , "" , "Ajax In Action");
    return dataset;
  }
}
public class BarChart3DDemo
{
  public static void main(String[] args) throws IOException
  {
    JFreeChart chart = ChartFactory.createBarChart3D(
              "圖書銷量統計圖", // 圖表標題
              "圖書", // 目錄軸的顯示標籤
              "銷量", // 數值軸的顯示標籤
              getDataSet(), // 數據集
              //PlotOrientation.HORIZONTAL , // 圖表方向:水平
              PlotOrientation.VERTICAL , // 圖表方向:垂直
              true,    // 是否顯示圖例(對於簡單的柱狀圖必須是false)
              false,    // 是否生成工具
              false    // 是否生成URL鏈接
              );
                
    //重新設置圖標標題,改變字體
    chart.setTitle(new TextTitle("圖書銷量統計圖", new Font("黑體", Font.ITALIC , 22)));    
    //取得統計圖標的第一個圖例
    LegendTitle legend = chart.getLegend(0);
    //修改圖例的字體
    legend.setItemFont(new Font("宋體", Font.BOLD, 14));    

    CategoryPlot plot = (CategoryPlot)chart.getPlot();
    //取得橫軸
    CategoryAxis categoryAxis = plot.getDomainAxis();
    //設置橫軸顯示標籤的字體
    categoryAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));
    //分類標籤以45度角傾斜
    categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    categoryAxis.setTickLabelFont(new Font("宋體" , Font.BOLD , 18));
    //取得縱軸
    NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
    //設置縱軸顯示標籤的字體
    numberAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));

    FileOutputStream fos = null;
    fos = new FileOutputStream("book.jpg");
    //將統計圖標輸出成JPG文件
    ChartUtilities.writeChartAsJPEG(
      fos, //輸出到哪個輸出流
      1, //JPEG圖片的質量,0~1之間
      chart, //統計圖標對象
      800, //寬
      600,//寬
      null //ChartRenderingInfo 信息
      );
    fos.close();
  }
  //返回一個CategoryDataset實例
  private static CategoryDataset getDataSet()
  {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(45000 , "北京" , "Spring2.0寶典");
    dataset.addValue(38000 , "北京" , "輕量級J2EE企業實戰");
    dataset.addValue(24000 , "北京" , "基於J2EE的Ajax寶典");
    dataset.addValue(32000 , "北京" , "JavaScript權威指南");
    dataset.addValue(21000 , "北京" , "Ajax In Action");
    dataset.addValue(37000 , "上海" , "Spring2.0寶典");
    dataset.addValue(36000 , "上海" , "輕量級J2EE企業實戰");
    dataset.addValue(34000 , "上海" , "基於J2EE的Ajax寶典");
    dataset.addValue(42000 , "上海" , "JavaScript權威指南");
    dataset.addValue(12000 , "上海" , "Ajax In Action");
    dataset.addValue(42000 , "廣州" , "Spring2.0寶典");
    dataset.addValue(40000 , "廣州" , "輕量級J2EE企業實戰");
    dataset.addValue(34000 , "廣州" , "基於J2EE的Ajax寶典");
    dataset.addValue(18000 , "廣州" , "JavaScript權威指南");
    dataset.addValue(26000 , "廣州" , "Ajax In Action");
    return dataset;
  }
}

public class LineChart3DDemo
{
  public static void main(String[] args) throws IOException
  {
    JFreeChart chart = ChartFactory.createTimeSeriesChart(
              "圖書銷量統計圖", // 圖表標題
              "圖書", // 目錄軸的顯示標籤
              "銷量", // 數值軸的顯示標籤
              getDataSet(), // 數據集
              //PlotOrientation.HORIZONTAL , // 圖表方向:水平
              PlotOrientation.VERTICAL , // 圖表方向:垂直
              true,    // 是否顯示圖例(對於簡單的柱狀圖必須是false)
              false,    // 是否生成工具
              false    // 是否生成URL鏈接
              );
                
    //重新設置圖標標題,改變字體
    chart.setTitle(new TextTitle("圖書銷量統計圖", new Font("黑體", Font.ITALIC , 22)));    
    //取得統計圖標的第一個圖例
    LegendTitle legend = chart.getLegend(0);
    //修改圖例的字體
    legend.setItemFont(new Font("宋體", Font.BOLD, 14));    

    CategoryPlot plot = (CategoryPlot)chart.getPlot();
    //取得橫軸
    CategoryAxis categoryAxis = plot.getDomainAxis();
    //設置橫軸顯示標籤的字體
    categoryAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));
    //分類標籤以45度角傾斜
    categoryAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    categoryAxis.setTickLabelFont(new Font("宋體" , Font.BOLD , 18));
    //取得縱軸
    NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
    //設置縱軸顯示標籤的字體
    numberAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));

    FileOutputStream fos = null;
    fos = new FileOutputStream("book.jpg");
    //將統計圖標輸出成JPG文件
    ChartUtilities.writeChartAsJPEG(
      fos, //輸出到哪個輸出流
      1, //JPEG圖片的質量,0~1之間
      chart, //統計圖標對象
      800, //寬
      600,//寬
      null //ChartRenderingInfo 信息
      );
    fos.close();
  }
  //返回一個CategoryDataset實例
  private static CategoryDataset getDataSet()
  {
    DefaultCategoryDataset dataset = new DefaultCategoryDataset();
    dataset.addValue(45000 , "北京" , "Spring2.0寶典");
    dataset.addValue(38000 , "北京" , "輕量級J2EE企業實戰");
    dataset.addValue(24000 , "北京" , "基於J2EE的Ajax寶典");
    dataset.addValue(32000 , "北京" , "JavaScript權威指南");
    dataset.addValue(21000 , "北京" , "Ajax In Action");
    dataset.addValue(37000 , "上海" , "Spring2.0寶典");
    dataset.addValue(36000 , "上海" , "輕量級J2EE企業實戰");
    dataset.addValue(34000 , "上海" , "基於J2EE的Ajax寶典");
    dataset.addValue(42000 , "上海" , "JavaScript權威指南");
    dataset.addValue(12000 , "上海" , "Ajax In Action");
    dataset.addValue(42000 , "廣州" , "Spring2.0寶典");
    dataset.addValue(40000 , "廣州" , "輕量級J2EE企業實戰");
    dataset.addValue(34000 , "廣州" , "基於J2EE的Ajax寶典");
    dataset.addValue(18000 , "廣州" , "JavaScript權威指南");
    dataset.addValue(26000 , "廣州" , "Ajax In Action");
    return dataset;
  }
}

public class TimeChartDemo
{
  public static void main(String[] args) throws IOException
  {
    JFreeChart chart = ChartFactory.createTimeSeriesChart(
              "圖書銷量統計圖", // 圖表標題
              "圖書", // 目錄軸的顯示標籤
              "銷量", // 數值軸的顯示標籤
              getDataSet(), // 數據集
              true,    // 是否顯示圖例(對於簡單的柱狀圖必須是false)
              false,    // 是否生成工具
              false    // 是否生成URL鏈接
              );
                
    //重新設置圖標標題,改變字體
    chart.setTitle(new TextTitle("圖書銷量統計圖", new Font("黑體", Font.ITALIC , 22)));    
    //取得統計圖標的第一個圖例
    LegendTitle legend = chart.getLegend(0);
    //修改圖例的字體
    legend.setItemFont(new Font("宋體", Font.BOLD, 14));    
    //取得時間順序圖的Plot對象
    XYPlot plot = (XYPlot)chart.getPlot();
    //取得橫軸
    ValueAxis categoryAxis = plot.getDomainAxis();
    //設置橫軸顯示標籤的字體
    categoryAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));
    categoryAxis.setTickLabelFont(new Font("宋體" , Font.BOLD , 18));
    //取得縱軸
    NumberAxis numberAxis = (NumberAxis)plot.getRangeAxis();
    //設置縱軸顯示標籤的字體
    numberAxis.setLabelFont(new Font("宋體" , Font.BOLD , 22));

    FileOutputStream fos = null;
    fos = new FileOutputStream("book.jpg");
    //將統計圖標輸出成JPG文件
    ChartUtilities.writeChartAsJPEG(
      fos, //輸出到哪個輸出流
      1, //JPEG圖片的質量,0~1之間
      chart, //統計圖標對象
      800, //寬
      600,//寬
      null //ChartRenderingInfo 信息
      );
    fos.close();
  }
  //返回一個CategoryDataset實例
  private static XYDataset getDataSet()
  {
    TimeSeries spring = new TimeSeries("Spring2.0寶典" , Month.class);
    spring.add(new Month(10, 2006), 3400);
    spring.add(new Month(11, 2006), 2700);
    spring.add(new Month(12, 2006), 3100);
    spring.add(new Month(1, 2007), 1800);
    spring.add(new Month(2, 2007), 2200);
    TimeSeries lightWeight = new TimeSeries("輕量級J2EE企業應用實戰" , Month.class);
    lightWeight.add(new Month(10, 2006), 2800);
    lightWeight.add(new Month(11, 2006), 3700);
    lightWeight.add(new Month(12, 2006), 2600);
    lightWeight.add(new Month(1, 2007), 2100);
    lightWeight.add(new Month(2, 2007), 1100);

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(spring);
    dataset.addSeries(lightWeight);
    return dataset;
  }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章