Java學習筆記 製作圖表過程(Eclipse+JFreeChart)

來源:互聯網
上載者:User

JFreeChart是開放原始碼網站SourceForge.net上的一個JAVA項目,它主要用來產生各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普 通柱狀圖以及堆棧柱狀圖)、線圖、地區圖、分布圖、混合圖、甘特圖以及一些儀錶盤等等。這些不同式樣的圖表基本上可以滿足目前的要求。該公司的主要產品有如下:
         1、JFreeReport:報表解決工具
         2、JFreeChart:Java圖形解決方案(Application/Applet/Servlet/Jsp)
         3、JCommon:JFreeReport和JFreeChart的公用類庫
         4、JFreeDesigner:JFreeReport的報表設計工具

JFreeChart所產生的Chart包括三個部分:Title,Plot (圖形的主要顯示地區)和 Legend

      進行中中的一個資料分析軟體需要用到JAVA的圖表引擎JFreeChart來作圖,現將其在Eclipse中的配置過程說明如下:
1.下載JFreeChart:http://www.jfree.org/jfreechart/index.html
2.安裝配置:先解壓jfreechart-1.0.9.zip,再將解壓之後的檔案中的\lib下的gnujaxp.jar,jcommon-1.0.12.jar,jfreechart-1.0.9.jar三個jar包添加到project中。在Eclipse中的具體做法為:project菜單——>Properties——>Java Build Path——>Libraries——>Add External Jars,就這樣將上述三個jar檔案逐一添加到當前Project中。
3.基於JFreeChart編程
以下是網上找的一個利用Jfreechart產生柱狀圖的程式段,以測試組態成功。

 

import java.io.*;import java.awt.Dimension;import javax.swing.JPanel;import org.jfree.chart.*;import org.jfree.chart.axis.CategoryAxis;import org.jfree.chart.axis.CategoryLabelPositions;import org.jfree.chart.plot.CategoryPlot;import org.jfree.chart.plot.PlotOrientation;import org.jfree.chart.renderer.category.BarRenderer3D;import org.jfree.data.category.CategoryDataset;import org.jfree.data.category.DefaultCategoryDataset;import org.jfree.data.general.DatasetUtilities;import org.jfree.ui.ApplicationFrame;import org.jfree.ui.RefineryUtilities;/*** 該類用於示範最簡單的柱狀圖產生*/public class BarChartDemo {        public static void main(String[] args) throws IOException{                CategoryDataset dataset = getDataSet2();                JFreeChart chart = ChartFactory.createBarChart3D(                                                        "水果產量圖", // 圖表標題                                                        "水果", // 目錄軸的顯示標籤                                                        "產量", // 數值軸的顯示標籤                                                        dataset, // 資料集                                                        PlotOrientation.VERTICAL, // 圖表方向:水平、垂直                                                        true,         // 是否顯示圖例(對於簡單的柱狀圖必須是false)                                                        false,         // 是否產生工具                                                        false         // 是否產生URL連結                                                        );                FileOutputStream fos_jpg = null;                try {                        fos_jpg = new FileOutputStream("D:\\fruit.jpg");                                              ChartUtilities.writeChartAsJPEG(fos_jpg,chart,400,300);                } finally {                        try {                                fos_jpg.close();                        } catch (Exception e) {}                }        }        /**         * 擷取一個示範用的簡單資料集對象         * @return         */        private static CategoryDataset getDataSet() {                DefaultCategoryDataset dataset = new DefaultCategoryDataset();                dataset.addValue(100, null, "蘋果");                dataset.addValue(200, null, "梨子");                dataset.addValue(300, null, "葡萄");                dataset.addValue(400, null, "香蕉");                dataset.addValue(500, null, "荔枝");                return dataset;        }        /**         * 擷取一個示範用的組合資料集對象         * @return         */        private static CategoryDataset getDataSet2() {                DefaultCategoryDataset dataset = new DefaultCategoryDataset();                dataset.addValue(100, "北京", "蘋果");                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;        }}

.4 產生的圖表
上述程式產生的柱狀圖如下:

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.