<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 7, 文章 - 12, 評論 - 17, 引用 - 0
    數據加載中……

    JFreeChart的實例代碼

    package com.chart;

    import java.awt.BasicStroke;
    import java.awt.Color;
    import java.awt.Font;
    import java.io.FileOutputStream;
    import java.io.PrintWriter;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    import java.util.Date;

    import javax.servlet.http.HttpSession;

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.ChartRenderingInfo;
    import org.jfree.chart.ChartUtilities;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.entity.StandardEntityCollection;
    import org.jfree.chart.labels.StandardPieItemLabelGenerator;
    import org.jfree.chart.plot.PiePlot;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.category.CategoryDataset;
    import org.jfree.data.category.DefaultCategoryDataset;
    import org.jfree.data.general.DefaultPieDataset;
    import org.jfree.data.time.Minute;
    import org.jfree.data.time.TimePeriodValues;
    import org.jfree.data.time.TimePeriodValuesCollection;
    import org.jfree.data.xy.XYDataset;

    public class ChartExample {

     
     /*****
      * 生成柱形圖的實例,保存到Jpg文件中
      */
     public void createChar3D()
     {
      CategoryDataset   dataset   =   getDataSet2();  
      JFreeChart   chart   =   ChartFactory.createBarChart3D(  
       "水果產量圖",   //   圖表標題  
       "水果",   //   目錄軸的顯示標簽  
       "產量",   //   數值軸的顯示標簽  
       dataset,   //   數據集  
       PlotOrientation.VERTICAL,   //   圖表方向:水平、垂直  
       true,   //   是否顯示圖例(對于簡單的柱狀圖必須是false)  
       false,   //   是否生成工具  
       false   //   是否生成URL鏈接  
      );  
      
      FileOutputStream   fos_jpg   =   null;  
      try  
      {  
       fos_jpg   =   new   FileOutputStream("e:/123.jpg");  
       ChartUtilities.writeChartAsJPEG(fos_jpg,0.8f,chart,400,300);  
      }catch(Exception e)
      {
       e.printStackTrace();
      }
      finally
      {  
       try  
       {  
        fos_jpg.close();  
       }catch(Exception   e)  
       {
        e.printStackTrace();
       }  
      }  
     }
     /**  
     *   獲取一個演示用的組合數據集對象   (柱形圖)
     *   @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;  
     }
     /***
      * 根據時間生成曲線圖,保存到jpg中
      *
      */
     public static void createTimeChart()
     {
      XYDataset   xydataset   =   createDataset();  
      JFreeChart   chart   =   ChartFactory.createTimeSeriesChart(  
                        "nihao",  
                        "hello",  
                        "123",  
                        xydataset,  
                        true,  
                        true,  
                        true);  
      FileOutputStream   fos_jpg   =   null;  
      try  
      {  
       fos_jpg   =   new   FileOutputStream("e:/123.jpg");  
       ChartUtilities.writeChartAsJPEG(fos_jpg,0.8f,chart,400,300);  
      }catch(Exception e)
      {
       e.printStackTrace();
      }
      finally
      {  
       try  
       {  
        fos_jpg.close();  
       }catch(Exception   e)  
       {
        e.printStackTrace();
       }  
      }  

     }
     /****
      *  獲取一個演示用的組合數據集對象   (時間曲線圖)
      * @return
      */
      private   static   XYDataset   createDataset()
      {  
           TimePeriodValues   timeseries1   =   new   TimePeriodValues("Chart   Title");  
            
           //這地方可以使用循環,把x軸,y軸   的值   輔給timeseries1 
           TimePeriodValuesCollection   timeseriescollection   =   new   TimePeriodValuesCollection();  
           for(int i =1;i<10;i++)
           {
            Minute   min   =  new Minute(new Date());
            timeseries1.add(min,   i);  
         
           
            timeseriescollection.addSeries(timeseries1);  
           }
           return   timeseriescollection;  
       }
     /***********餅狀圖*********/
     private DefaultPieDataset data =new DefaultPieDataset();
     private Font titleFont = new Font("黑體",Font.CENTER_BASELINE,18);
     /****
      *  設置一個演示用的組合數據集對象   (餅狀圖)
      * @return
      */
     public void setValue(String key,double value)
     {
      data.setValue(key,value);
     }
     /***
      * 根據時間生成病狀圖,顯示到jsp頁面
      *
      */
     public String generatePieChart(String title, HttpSession session, PrintWriter pw)
     {  
      String filename = null;
      String unitSytle = "{0}={1}({2})";
      try {
       JFreeChart chart = ChartFactory.createPieChart3D("餅型圖",  // chart title
            data,  // data
            true, // include legend
            true,
            false
            );
       //設置圖片的背景色
       chart.setBackgroundPaint(new Color(215,215,215));
       
       //設置透明度,好像對servlet沒有用
       chart.setBackgroundImageAlpha(0.9f);
       
       //設置圖片標題的字體和大小
       TextTitle _title = new TextTitle(title);
       _title.setFont(titleFont);
       chart.setTitle(_title);   

       PiePlot plot = (PiePlot) chart.getPlot();   
       
       plot.setNoDataMessage("無對應的數據,請重新查詢。");
       plot.setNoDataMessagePaint(Color.red);
       
       //指定 section 輪廓線的厚度(OutlinePaint不能為null)
       plot.setOutlineStroke(new BasicStroke(0));
       
       //設置第一個 section 的開始位置,默認是12點鐘方向
       plot.setStartAngle(90);   

       plot.setToolTipGenerator(new StandardPieItemLabelGenerator(unitSytle,
         NumberFormat.getNumberInstance(),
         new DecimalFormat("0.00%")));
       
       //指定圖片的透明度
       plot.setForegroundAlpha(0.65f);
       
       //引出標簽顯示樣式
       plot.setLabelGenerator(new StandardPieItemLabelGenerator(unitSytle,
         NumberFormat.getNumberInstance(),
         new DecimalFormat("0.00%")));
        
       //圖例顯示樣式
       plot.setLegendLabelGenerator(new StandardPieItemLabelGenerator(unitSytle,
         NumberFormat.getNumberInstance(),
         new DecimalFormat("0.00%")));

       //把生成的圖片放到臨時目錄
       ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
       
       //設置圖片名稱前綴
       ServletUtilities.setTempFilePrefix("chart-");
       
       //500是圖片長度,300是圖片高度
       filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);

       ChartUtilities.writeImageMap(pw, filename, info, false);
       pw.flush();
       
       System.out.println(System.getProperty("java.io.tmpdir") + filename);

      } catch (Exception e) {
       System.out.println("Exception - " + e.toString());
       e.printStackTrace(System.out);
       filename = "public_error_600x350.png";
      }
      return filename;
     }

      /**
       * @param args
     */
     public static void main(String[] args)
     {
      createTimeChart();
     }
    }

    /**************************餅形圖的jsp頁面***************************************/

    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import ="java.io.PrintWriter" %>
    <%@ page import="com.chart.ChartExample"%>
    <%

    ChartExample chart = new ChartExample();
    chart.setValue("六月",500);
    chart.setValue("七月",580);
    chart.setValue("八月",828);


    String filename = chart.generatePieChart("www.SenTom.net 網站訪問統計表",session, new PrintWriter(out));
    String graphURL = request.getContextPath() +"/servlet/DisplayChart?filename=" + filename;


    %>
    <HTML>
    <HEAD>
     <TITLE>www.sentom.net</TITLE>
    </HEAD>
    <BODY>
    <P ALIGN="CENTER">
           <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%=filename%>"></P>
    </BODY>
    </HTML>

    posted on 2007-07-07 15:33 劉浪 閱讀(888) 評論(0)  編輯  收藏 所屬分類: code

    主站蜘蛛池模板: 国产精品成人啪精品视频免费| 亚洲男人的天堂久久精品 | 久久亚洲精品成人AV| baoyu116.永久免费视频| 亚洲AV网站在线观看| 美女露隐私全部免费直播| 亚洲第一永久AV网站久久精品男人的天堂AV | 狠狠躁狠狠爱免费视频无码| www国产亚洲精品久久久日本| 美女被爆羞羞网站在免费观看| 亚洲成年看片在线观看| 一本到卡二卡三卡免费高| 亚洲精品无码永久中文字幕| 久久精品电影免费动漫| 亚洲制服丝袜精品久久| 午夜毛片不卡免费观看视频| 久久亚洲AV成人无码国产电影| 亚洲精品无码久久久| 免费无码又爽又刺激高潮软件| 亚洲国产日韩一区高清在线| 18禁美女黄网站色大片免费观看| 亚洲an日韩专区在线| 四虎影在线永久免费四虎地址8848aa| 黄页网站在线免费观看| 亚洲国产成人片在线观看| 国产1000部成人免费视频| 亚洲乱码中文字幕在线| 国产a v无码专区亚洲av| 99免费视频观看| 亚洲国产成人综合精品| 亚洲色精品88色婷婷七月丁香| 永久免费视频网站在线观看| 狠狠入ady亚洲精品| 久久久久久久久亚洲| 国产精品久免费的黄网站| a成人毛片免费观看| 亚洲中文字幕无码久久2020| 亚洲综合国产精品第一页| 成人免费黄色网址| 国产乱妇高清无乱码免费| 2019亚洲午夜无码天堂|