1. 程式人生 > >如何使用Jfreechart生成柱狀圖?

如何使用Jfreechart生成柱狀圖?

lai ans *** clas ldp 成了 get nts cal

JFreeChart是JAVA平臺上的一個開放的圖表繪制類庫。

首先 (http://www.jfree.org /jfreechart) 總這個網址下載所需要的庫,然後解壓,放在某個地方。 我們默認的環境是eclipse。

技術分享圖片

選擇項目右鍵--.>選擇BuildPath 然後點擊Configure Build Path

技術分享圖片

在出現的界面右側 選擇 Add External JARs

找到你下載的庫打開lib,將所有的jar文件添加進去。這時我們剩下要做的只有寫代碼。

package jfreechart;

import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; public class Jfreechartcanshu { public static void main(String[] args) throws IOException { final CategoryDataset ds = getDataSet(); final JFreeChart chart = ChartFactory.createBarChart3D("按參數的吞吐率和公平性", //
圖表標題 "每次生成猴子個數", // 目錄軸的顯示標簽 "數值", // 數值軸的顯示標簽 ds, // 數據集 PlotOrientation.VERTICAL, // 圖表方向 true, // 是否顯示圖例,對於簡單的柱狀圖必須為false false, // 是否生成提示工具 false); // 是否生成url鏈接 final CategoryPlot categoryplot = (CategoryPlot) chart.getPlot(); final NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); final CategoryAxis domainAxis = categoryplot.getDomainAxis(); /*------設置X軸坐標上的文字-----------*/ domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); /*------設置X軸的標題文字------------*/ domainAxis.setLabelFont(new Font("宋體", Font.PLAIN, 12)); /*------設置Y軸坐標上的文字-----------*/ numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12)); /*------設置Y軸的標題文字------------*/ numberaxis.setLabelFont(new Font("黑體", Font.PLAIN, 12)); /*------這句代碼解決了底部漢字亂碼的問題-----------*/ chart.getLegend().setItemFont(new Font("宋體", Font.PLAIN, 12)); /******* 這句代碼解決了標題漢字亂碼的問題 ********/ chart.getTitle().setFont(new Font("宋體", Font.PLAIN, 12)); FileOutputStream out = null; try { out = new FileOutputStream("./src/Monkey/chart參數.jpg"); ChartUtilities.writeChartAsJPEG(out, 0.5f, chart, 400, 300, null); } finally { try { out.close(); } catch (final Exception ex) { ex.printStackTrace(); } } } private static CategoryDataset getDataSet() { final DefaultCategoryDataset ds = new DefaultCategoryDataset(); ds.addValue(1.11, "吞吐率", "K=2"); ds.addValue(0.72, "公平性", "K=2"); ds.addValue(1.17, "吞吐率", "K=4"); ds.addValue(0.60, "公平性", "K=4"); ds.addValue(1.53, "吞吐率", "K=6"); ds.addValue(0.65, "公平性", "K=6"); ds.addValue(1.66, "吞吐率", "K=8"); ds.addValue(0.53, "公平性", "K=8"); ds.addValue(1.34, "吞吐率", "K=10"); ds.addValue(0.65, "公平性", "K=10"); return ds; } }

這時一個樣板,運行後 會在目錄下生成.jpg文件,是一個柱狀圖,改動時只需要將X,Y軸的數值,文字改變。其他的可根據需要進行變動,這樣就生成了一個jfreechart圖表。我自己運行的結果如下:

技術分享圖片

如何使用Jfreechart生成柱狀圖?