- JFreeChart 教程
- JFreeChart - 主頁
- JFreeChart - 概覽
- JFreeChart - 安裝
- JFreeChart - 架構
- JFreeChart - 引用 API
- JFreeChart - 餅狀圖
- JFreeChart - 柱狀圖
- JFreeChart - 折線圖
- JFreeChart - XY 圖表
- JFreeChart - 三維圖表/柱狀圖
- JFreeChart- 氣泡圖
- JFreeChart - 時間序列圖
- JFreeChart - 檔案介面
- JFreeChart - 資料庫介面
- JFreeChart 實用資源
- JFreeChart - 快速指南
- JFreeChart - 實用資源
- JFreeChart - 討論
JFreeChart - 柱狀圖
本章演示如何使用 JFreeChart 根據給定的業務資料集建立柱狀圖。
柱狀圖使用不同方向(水平或垂直)的條形來顯示各種類別的比較。該圖表的其中一個軸(域軸)顯示要比較的特定域,而另一個軸(範圍軸)表示離散值。
業務資料
以下示例藉助柱狀圖描繪了各種汽車統計資料。以下是我們將使用柱狀圖顯示的汽車品牌及其不同特性的列表 -
| 汽車 | 速度 | 使用者評級 | 里程 | 安全性 |
|---|---|---|---|---|
| 菲亞特 | 1.0 | 3.0 | 5.0 | 5.0 |
| 奧迪 | 5.0 | 6.0 | 10.0 | 4.0 |
| 福特 | 4.0 | 2.0 | 3.0 | 6.0 |
基於 AWT 的應用程式
以下程式碼用於根據上述給定資訊建立柱狀圖。此程式碼可以幫助您將柱狀圖嵌入到任何基於 AWT 的應用程式中。
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
public class BarChart_AWT extends ApplicationFrame {
public BarChart_AWT( String applicationTitle , String chartTitle ) {
super( applicationTitle );
JFreeChart barChart = ChartFactory.createBarChart(
chartTitle,
"Category",
"Score",
createDataset(),
PlotOrientation.VERTICAL,
true, true, false);
ChartPanel chartPanel = new ChartPanel( barChart );
chartPanel.setPreferredSize(new java.awt.Dimension( 560 , 367 ) );
setContentPane( chartPanel );
}
private CategoryDataset createDataset( ) {
final String fiat = "FIAT";
final String audi = "AUDI";
final String ford = "FORD";
final String speed = "Speed";
final String millage = "Millage";
final String userrating = "User Rating";
final String safety = "safety";
final DefaultCategoryDataset dataset =
new DefaultCategoryDataset( );
dataset.addValue( 1.0 , fiat , speed );
dataset.addValue( 3.0 , fiat , userrating );
dataset.addValue( 5.0 , fiat , millage );
dataset.addValue( 5.0 , fiat , safety );
dataset.addValue( 5.0 , audi , speed );
dataset.addValue( 6.0 , audi , userrating );
dataset.addValue( 10.0 , audi , millage );
dataset.addValue( 4.0 , audi , safety );
dataset.addValue( 4.0 , ford , speed );
dataset.addValue( 2.0 , ford , userrating );
dataset.addValue( 3.0 , ford , millage );
dataset.addValue( 6.0 , ford , safety );
return dataset;
}
public static void main( String[ ] args ) {
BarChart_AWT chart = new BarChart_AWT("Car Usage Statistics",
"Which car do you like?");
chart.pack( );
RefineryUtilities.centerFrameOnScreen( chart );
chart.setVisible( true );
}
}
我們將在BarChart_AWT.java 檔案中保留上述 Java 程式碼,然後在命令提示符中編譯並執行它,如下所示:
$javac BarChar_AWT.java $java BarChart_AWT
如果一切正常,它將編譯並執行以生成以下柱形圖 -
JPEG 影像建立
讓我們重新編寫上述示例以從命令列生成 JPEG 影像。
import java.io.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.chart.ChartUtilities;
public class BarChart {
public static void main( String[ ] args )throws Exception {
final String fiat = "FIAT";
final String audi = "AUDI";
final String ford = "FORD";
final String speed = "Speed";
final String millage = "Millage";
final String userrating = "User Rating";
final String safety = "safety";
final DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
dataset.addValue( 1.0 , fiat , speed );
dataset.addValue( 3.0 , fiat , userrating );
dataset.addValue( 5.0 , fiat , millage );
dataset.addValue( 5.0 , fiat , safety );
dataset.addValue( 5.0 , audi , speed );
dataset.addValue( 6.0 , audi , userrating );
dataset.addValue( 10.0 , audi , millage );
dataset.addValue( 4.0 , audi , safety );
dataset.addValue( 4.0 , ford , speed );
dataset.addValue( 2.0 , ford , userrating );
dataset.addValue( 3.0 , ford , millage );
dataset.addValue( 6.0 , ford , safety );
JFreeChart barChart = ChartFactory.createBarChart(
"CAR USAGE STATIStICS",
"Category", "Score",
dataset,PlotOrientation.VERTICAL,
true, true, false);
int width = 640; /* Width of the image */
int height = 480; /* Height of the image */
File BarChart = new File( "BarChart.jpeg" );
ChartUtilities.saveChartAsJPEG( BarChart , barChart , width , height );
}
}
我們將在 BarChart.java 檔案中保留上述 Java 程式碼,然後在命令提示符中編譯並執行它,如下所示:
$javac BarChart.java $java BarChart
如果一切正常,它將編譯並執行,以便在您的當前目錄中建立一個名為BarChart.jpeg的 JPEG 影像檔案。
廣告