瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          jFreeChart初探(靜態應用)

          Posted on 2007-10-09 14:17 瘋狂 閱讀(292) 評論(1)  編輯  收藏
           

          初學JFreeChart,整理一個例子:(部分來自網頁)

          JFreeChart它主要是用來制作各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。本文用的是JFreeChart 1.0.2 (根據版本不同需要根據類修改部分代碼)下載:http://www.jfree.org/jfreechart/index.html

          下載后解壓jfreechart-1.0.2.zip,會發現在lib下有幾個jar文件,本文只介紹生成餅圖的例子:

          1,首先將lib下的jcommon-1.0.5.jar和jfreechart-1.0.2.jar放到你的項目的lib下面,

          2,然后建一個java類用于輸出;

          package com.chart.example;

          import java.io.*;

          import java.text.DecimalFormat;

          import java.text.NumberFormat;

          import org.jfree.data.*;

          import org.jfree.data.general.DefaultPieDataset;

          import org.jfree.chart.*;

          import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

          import org.jfree.chart.plot.PiePlot3D;

          /**

           * 用于演示餅圖的生成

           * @author Winter Lau

           */

          public class PieChartDemo {

               public static void main(String[] args) throws IOException{

                   DefaultPieDataset data = getDataSet();

                   JFreeChart chart = ChartFactory.createPieChart3D("分銷商分布圖", // 圖表標題

                   data,

                   true, // 是否顯示圖例

                   false,

                   false

                   );

                   //寫圖表對象到文件,參照柱狀圖生成源碼

                   FileOutputStream fos_jpg = null;

                   try {

                        fos_jpg = new FileOutputStream("D:\\client.jpg");

                        PiePlot3D plot=(PiePlot3D)chart.getPlot();

                        // 圖片中顯示百分比:默認方式

                        //plot.setLabelGenerator(new StandardPieSectionLabelGenerat(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));

                        // 圖片中顯示百分比:自定義方式,{0} 表示選項, {1} 表示數值, {2} 表示所占比例 ,小數點后兩位

                        plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));

                        // 圖例顯示百分比:自定義方式, {0} 表示選項, {1} 表示數值, {2} 表示所占比例

                        plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));

                        ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f,chart,400,300,null);

                   } finally {

                        try {

                             fos_jpg.close();

                        } catch (Exception e) {}

                   }

               }

               /**

                * 獲取一個演示用的簡單數據集對象

                * @return

                */

               private static DefaultPieDataset getDataSet() {

                   DefaultPieDataset dataset = new DefaultPieDataset();

                   dataset.setValue("一級分銷商",100);

                   dataset.setValue("二級分銷商",200);

                   dataset.setValue("三級分銷商",300);

                   return dataset;

               }

          }

          運行后在你的d盤下會生成一個client.jpg,如下:


          評論

          # re: jFreeChart初探(靜態應用)  回復  更多評論   

          2007-10-09 18:58 by 快樂的豬豬
          不錯

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 衡东县| 沙坪坝区| 商城县| 龙游县| 伊金霍洛旗| 柞水县| 常德市| 西青区| 长寿区| 浦北县| 太湖县| 新乡县| 六盘水市| 铜陵市| 昌图县| 松溪县| 唐河县| 讷河市| 徐水县| 内丘县| 石渠县| 菏泽市| 涡阳县| 兴和县| 罗城| 潮州市| 虎林市| 广东省| 巴林左旗| 邵阳县| 丹凤县| 石家庄市| 禹州市| 利川市| 股票| 吴桥县| 泰顺县| 饶平县| 沅江市| 临武县| 永新县|