飛艷小屋

          程序--人生--哲學___________________歡迎艷兒的加入

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

          JFreeChart初學者入門實例詳細解析(轉載)

          作者 javasky @ 2005-04-21 21:33:41
          JFreeChart,開放源碼的Java圖表生成組件(基于LGPL Licence),可以創建餅圖、曲線圖、柱狀圖、甘特圖,生成PNG,JPG等圖片格式文件。當前最新版本為0.9.11,下面就是一張JFreeChart生成的統計圖。本文講解如何在Web利用JFreeChart生成餅狀統計圖。

          一、安裝配置

          當前最新版本為0.9.11

          下載jfreechart-0 .9.11.zip

          下載jfreechar t-0.9.11.tar.gz

          解壓縮文件,jfreechart-0.9.11目錄下的jfreechart-0.9.11.jar和 lib/jcommon-0.8.6.jar,lib/gnujaxp.jar都是開發運行需要的文件,把這三個文件放置到應用的lib目錄下。

          然后在web.xml文件中增加以下內容:

          <servlet>
          <servlet-name>DisplayChart</servlet-name>
          <servlet-class>org.jfree.chart.
          servlet.DisplayChart</servlet-class>
          </servlet>/PRE>
          /CENTER>



          安裝配置完成,現在可以寫程序生成我們需要的統計圖了。

          二、開始,在JSP中生成餅型統計圖

          <%@ page contentType=
          "text/html;charset=GBK"%>
          <%@ page import=
          "org.jfree.data.DefaultPieDataset"%>
          <%@ page import=
          "org.jfree.chart.JFreeChart"%>
          <%@ page import=
          "org.jfree.chart.plot.PiePlot"%>
          <%@ page import=
          "org.jfree.chart.
          ChartRenderingInfo"%>
          <%@ page import=
          "org.jfree.chart.servlet.
          ServletUtilities"%>
          <%@ page import=
          "org.jfree.chart.urls.
          StandardPieURLGenerator"%>
          <%@ page import=
          "org.jfree.chart.entity.
          StandardEntityCollection"%>
          <%
          
          DefaultPieDataset data 
          = new DefaultPieDataset();
          data.setValue("六月",500);
          data.setValue("七月",580);
          data.setValue("八月",828); 
          
          PiePlot plot = new PiePlot(data);
          
          JFreeChart chart = new JFreeChart
          ("",JFreeChart.DEFAULT_TITLE_FONT,
          plot, true);
          chart.setBackgroundPaint
          (java.awt.Color.white);
          //可選,設置圖片背景色
          chart.setTitle
          ("www.SenTom.net 網站訪問統計表");
          //可選,設置圖片標題
          ChartRenderingInfo info 
          = new ChartRenderingInfo
          (new StandardEntityCollection());
          //500是圖片長度,300是圖片高度
          String filename =
          ServletUtilities.saveChartAsPNG
          (chart, 500, 300, info, session);
          String graphURL =
          request.getContextPath() +
          "/servlet/DisplayChart?filename="
          + filename; 
          %>
          <HTML>
          <HEAD>
                 <TITLE>www.sentom.net</TITLE>
          </HEAD>
          <BODY>
          <P ALIGN="CENTER">
          <ccid_file values="<%=" graphURL % />"
          width=500 height=300 border=0 
          usemap="#<%= filename 
          %>">
          </P>
          </BODY>
          </HTML>/PRE>
          /CENTER>



          就這么簡單,生成的餅狀圖如下


          三、JSP+JAVABEAN生成餅狀統計圖

          WebChart.java 
           
          /*
           * Created on 2003-9-9
           * http://www.sentom.net
           * To change the template 
           for this generated file go to
           * Window>Preferences>Java>Code
           Generation>Code and Comments
           */
          package net.sentom.chart;
          
          import java.awt.Insets;
          import java.awt.Font;
          import java.io.PrintWriter;
          import javax.servlet.http.HttpSession;
          import org.jfree.data.*;
          import org.jfree.chart.*;
          import org.jfree.chart.plot.*;
          import org.jfree.chart.entity.*;
          import org.jfree.chart.urls.*;
          import org.jfree.chart.servlet.*;
          import org.jfree.chart.labels.
          StandardPieToolTipGenerator;
          
          /**
           * @author sentom
           *
           * To change the template for
           this generated type comment go to
           * Window>Preferences>Java>Code
           Generation>Code and Comments
           */
          public class WebChart
          {
          	private DefaultPieDataset data =
          	new DefaultPieDataset();
          	
          	public void setValue
          	(String key,double value)
          	{
          		data.setValue(key,value);
          	}
          	
          	public String generatePieChart
          	(String title, HttpSession session, 
          	PrintWriter pw)
          	{
          		String filename = null;
          		try
          		{
          //創建chart對象
          PiePlot plot =
          new PiePlot(data);
          plot.setInsets
          (new Insets(0, 5, 5, 5));
          //在統計圖片上建連結
          plot.setURLGenerator
          (new StandardPieURLGenerator
          ("link.jsp","section"));
          plot.setToolTipGenerator
          (new StandardPieToolTipGenerator());
          JFreeChart chart = new JFreeChart
          ("", JFreeChart.DEFAULT_TITLE_FONT, 
          plot, true);
          chart.setBackgroundPaint
          (java.awt.Color.white);
          //設置圖片的背景色
          Font font = new Font
          ("黑體",Font.CENTER_BASELINE,20);
          //設置圖片標題的字體和大小
          TextTitle _title =
          new TextTitle(title);
          _title.setFont(font);
          chart.setTitle(_title);
          //把生成的圖片放到臨時目錄
          ChartRenderingInfo info =
          new ChartRenderingInfo(new 
          StandardEntityCollection());
          //500是圖片長度,
          300是圖片高度
          filename = ServletUtilities.
          saveChartAsPNG
          (chart, 500, 300, info, 
          session);
          ChartUtilities.writeImageMap
          (pw, filename, info);
          			pw.flush();
          } catch (Exception e)
          {
          System.out.println
          ("Exception - " + e.toString());
          e.printStackTrace
          (System.out);
          filename = 
          "public_error_500x300.png";
          		}
          		return filename;
          	}
          }/PRE>
          /CENTER>



          JSP文件

          <%@ page contentType=
          "text/html;charset=GBK"%>
          <%@ page import =
          "java.io.PrintWriter" %>
          <%@ page import=
          "net.sentom.chart.WebChart"%>
          <%
          
          WebChart chart = new WebChart();
          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">
          	<ccid_file values="<%=" graphURL % />
          	" width=500 height=300 
          	border=0 usemap="#<%= 
          
          filename %>">
          </P>
          </BODY>
          </HTML>/PRE>



          生成的餅狀圖如下

          四 參考資源

          http://sourceforge.net/projects/jfreechart

          http://www.jfree.org/jfreechart/index.html

          http://www.jfree.org/phpBB2/viewforum.php?f=3

          posted on 2006-08-21 14:52 天外飛仙 閱讀(350) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 阜宁县| 横峰县| 资阳市| 甘谷县| 泰顺县| 永修县| 香河县| 临武县| 囊谦县| 获嘉县| 雅江县| 太白县| 汾西县| 任丘市| 柳州市| 黑水县| 祁阳县| 繁昌县| 新民市| 杭锦旗| 江城| 白玉县| 浦江县| 文安县| 丹棱县| 界首市| 呼伦贝尔市| 年辖:市辖区| 库尔勒市| 陆丰市| 东山县| 湄潭县| 昌黎县| 乐昌市| 河北区| 古田县| 呼玛县| 竹溪县| 资阳市| 河池市| 乐昌市|