Bar Chart Demo (長條圖) :
底下我們將建立長條圖, 用來代表 John, Tom, Jill, John, Fred 的業績比較.
執行結果 :
- 使用說明
這裡使用的數據容器是 DefaultCategoryDataset :
而使用建立圖表的方法是 createBarChart() :
如果要表現 3D 的 Bar Chart 也是可以拉, 透過方法 createBarChart3D(). 代碼如下 (提供數據 two bars per person):
執行結果 :
最後如果你要改變圖表的外觀, 也是 Piece of cake 拉, 參考代碼如下 :
執行結果 :
Time Series Demo :
在這個範例中可以發現跟 XYChart 有點像, 只是 X 座標的輸入不再是數字而是代表時間的 Day 類別, 參考代碼如下.
執行結果 :
- 使用說明
這裡跟 XYChart 一樣, 需要兩個類別來記錄數據. 一個是 TimeSeries 用來記錄數據 (包含時間與對應該時間的數據) 與 TimeSeriesCollection 用來記錄多個 TimeSeries :
接著使用方法 createTimeSeriesChart() 來建立圖表 :
最後下面的代碼是用來改變顯示的時間格式 (X axis) :
底下我們將建立長條圖, 用來代表 John, Tom, Jill, John, Fred 的業績比較.
執行結果 :
- 使用說明
這裡使用的數據容器是 DefaultCategoryDataset :
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- dataset.setValue(6, “Profit”, “Jane”);
- JFreeChart chart = ChartFactory.createBarChart(
- "Comparison between Salesman", // title
- "Salesman", // category Axis Label
- "Profit", // value Axis Label
- dataset,
- PlotOrientation.VERTICAL,
- false,
- true,
- false);
- ...
- dataset.setValue(5+rdm.nextInt(5), "Profit1", "Jane");
- dataset.setValue(6+rdm.nextInt(4), "Profit2", "Jane");
- dataset.setValue(3+rdm.nextInt(6), "Profit1", "Tom");
- dataset.setValue(4+rdm.nextInt(6), "Profit2", "Tom");
- dataset.setValue(6+rdm.nextInt(3), "Profit1", "Jill");
- dataset.setValue(6+rdm.nextInt(4), "Profit2", "Jill");
- dataset.setValue(7+rdm.nextInt(3), "Profit1", "John");
- dataset.setValue(8+rdm.nextInt(2), "Profit2", "John");
- dataset.setValue(1+rdm.nextInt(9), "Profit1", "Fred");
- dataset.setValue(5+rdm.nextInt(5), "Profit2", "Fred");
- JFreeChart chart = ChartFactory.createBarChart(
- "Comparison between Salesman", // title
- "Salesman", // category Axis Label
- "Profit", // value Axis Label
- dataset,
- PlotOrientation.VERTICAL,
- false,
- true,
- false);
- ...
最後如果你要改變圖表的外觀, 也是 Piece of cake 拉, 參考代碼如下 :
- ...
- chart.setBackgroundPaint(Color.yellow); // Set the background colour of the chart
- chart.getTitle().setPaint(Color.blue); // Adjust the colour of the title
- CategoryPlot p = chart.getCategoryPlot(); // Get the Plot object for a bar graph
- p.setBackgroundPaint(Color.black); // Modify the plot background
- p.setRangeGridlinePaint(Color.red); // Modify the colour of the plot gridlines
- ...
Time Series Demo :
在這個範例中可以發現跟 XYChart 有點像, 只是 X 座標的輸入不再是數字而是代表時間的 Day 類別, 參考代碼如下.
執行結果 :
- 使用說明
這裡跟 XYChart 一樣, 需要兩個類別來記錄數據. 一個是 TimeSeries 用來記錄數據 (包含時間與對應該時間的數據) 與 TimeSeriesCollection 用來記錄多個 TimeSeries :
- TimeSeries pop = new TimeSeries("Population");
- TimeSeriesCollection dataset = new TimeSeriesCollection();
- dataset.addSeries(pop);
- JFreeChart chart = ChartFactory.createTimeSeriesChart(
- "Population of CSC408 Town", // title
- "Date", // time Axis Label
- "Population", // value Axis Label
- dataset,
- true, // a flag specifying whether or not a legend is required.
- true, // configure chart to generate tool tips?
- false); // configure chart to generate URLs?
- XYPlot plot = chart.getXYPlot();
- DateAxis axis = (DateAxis) plot.getDomainAxis();
- axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy"));
This message was edited 5 times. Last update was at 01/06/2011 17:25:00
文章內容豐富,解說也很詳細
回覆刪除更重要的是圖文並茂又不拖泥帶水
對我收穫良多 感謝作者分享
你的分享真的寫得很不賴欸!
回覆刪除在網路上找尋救援都可以看得很開心!
其實也是剛好用到, 才整理出來. 很高興對其他人也有幫助瞜 ^^
刪除