程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 報表應用系列——圖表JFreeChart: 第2章 柱狀圖

報表應用系列——圖表JFreeChart: 第2章 柱狀圖

編輯:關於JAVA

2.1. 簡單柱狀圖

首先為柱狀圖准備數據,柱狀圖必須使用CategoryDataset,這裡我們使用DefaultCategoryDataset。

DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100,"Spring Security","Jan");
dataset.addValue(200,"jBPM 4","Jan");
dataset.addValue(300,"Ext JS","Jan");
dataset.addValue(400,"JFreeChart","Jan");

每調用一次addValue()就會向Dataset中添加一條數據,在圖表中看來就是一個柱狀矩形,第一個參數100是柱狀矩形的長度,第二個參數表示數據的名稱,,第三個參數表示數據的分類。

有了圖表數據,下一步使用這些數據創建一個柱狀圖表。

JFreeChart chart = ChartFactory.createBarChart(
   "chart",// 標題
   "num",// 橫軸名稱
   "type",// 縱軸名稱
   dataset,// 數據
   PlotOrientation.VERTICAL,// 使用垂直柱狀圖
   true,// 是否使用legend 
   false,// 是否使用tooltip 
   false // 是否使用url鏈接
);

最後使用ChartUtilities將chart導出為PNG圖片。

FileOutputStream fos = null;

try {
   fos = new FileOutputStream("target/bar1.png");
   ChartUtilities.writeChartAsPNG(fos,chart,400,300);
} finally {
   fos.close();
}

圖 2.1. 簡單柱狀圖

完整代碼如下所示:

DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100,"Spring Security","Jan");
dataset.addValue(200,"jBPM 4","Jan");
dataset.addValue(300,"Ext JS","Jan");
dataset.addValue(400,"JFreeChart","Jan");

JFreeChart chart = ChartFactory.createBarChart("chart","num",
    "type",dataset,PlotOrientation.VERTICAL,true,false,
    false);
FileOutputStream fos = null;

try {
  fos = new FileOutputStream("target/bar1.png");
  ChartUtilities.writeChartAsPNG(fos,chart,400,300);
} finally {
  fos.close();
} 

2.2. 水平柱狀圖

把PlotOrientation.VERTICAL改成PlotOrientation.HORIZONTAL,柱狀圖就從豎直的變成了水平的。

圖 2.2. 水平柱狀圖

2.3. 三維柱狀圖

使用createBarChart3D就會生成三維柱狀圖。

圖 2.3. 三維柱狀圖

2.4. 分組柱狀圖

DefaultCategoryDataset支持分組統計,我們只需要在addValue()時為數據指定分組類型,顯示柱狀圖時會自動根據類別分組顯示。

dataset.addValue(100,"Spring Security","Jan");
dataset.addValue(200,"jBPM 4","Jan");
dataset.addValue(300,"Ext JS","Jan");
dataset.addValue(100,"JFreeChart","Jan");
dataset.addValue(60,"Spring Security","Fer");
dataset.addValue(100,"jBPM 4","Fer");
dataset.addValue(340,"Ext JS","Fer");
dataset.addValue(130,"JFreeChart","Fer");

圖 2.4. 分組柱狀圖

2.5. 負向坐標

為dataset添加一個負值,就可以在圖標上顯示出負向坐標了。

dataset.addValue(-20,"Ext JS","Jan");

圖 2.5. 負向坐標

TODO

SlidingCategoryDataset

IntervalBar

LayeredBar

survey

設置Label

隱藏axis

中文

背景顏色

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved