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

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

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

    春風博客

    春天里,百花香...

    導航

    <2008年4月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    統計

    公告

    MAIL: junglesong@gmail.com
    MSN: junglesong_5@hotmail.com

    Locations of visitors to this page

    常用鏈接

    留言簿(11)

    隨筆分類(224)

    隨筆檔案(126)

    個人軟件下載

    我的其它博客

    我的鄰居們

    最新隨筆

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    JFreeChat四種圖表的繪制例程

    1.平面餅圖


    Servlet代碼:
    package com.sitinspring.action;

    import java.awt.Color;
    import java.awt.Font;
    import java.util.Hashtable;
    import java.util.Map;

    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.general.DefaultKeyedValuesDataset;

    /**
     * 用于創建餅圖的Servlet
     * 
     * 
    @author sitinspring
     * 
     * @date 2008-2-12
     
    */

    public class PieChartServlet extends HttpServlet {
        
    private static final long serialVersionUID = 56890894234786L;

        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            request.setCharacterEncoding(
    "UTF-8");

            Map
    <String,Integer> ht=new Hashtable<String,Integer>();
            ht.put(
    "美國"139800);
            ht.put(
    "日本"52900);
            ht.put(
    "德國"32800);
            ht.put(
    "中國"30100);
            ht.put(
    "英國"25700);
            ht.put(
    "法國"25200);
            ht.put(
    "意大利"20900);
            ht.put(
    "西班牙"14100);
            ht.put(
    "加拿大"13600);
            ht.put(
    "俄羅斯"11400);
            
            
    float sum=0;
            
    for(Integer i:ht.values()){
                sum
    +=i;
            }

            
            
    // 設定數據源
            DefaultKeyedValuesDataset piedata = new DefaultKeyedValuesDataset();

            
    // 向數據源中插值,第一個參數為名稱,第二個參數是double數
            for(String nation:ht.keySet()){
                piedata.setValue(nation, ((
    float)ht.get(nation))/sum*100);
            }

            
            
    // 使用ChartFactory來創建JFreeChart
            JFreeChart chart = ChartFactory.createPieChart("2007世界總GDP排名", piedata, true,
                    
    truetrue);
            
            
    // 設定圖片標題
            chart.setTitle(new TextTitle("2007世界總GDP排名"new Font("隸書", Font.ITALIC, 15)));

            
    // 設定背景
            chart.setBackgroundPaint(Color.white);
            
            
    // 創建文件并將圖片地址傳遞到頁面
            String filename = ServletUtilities.saveChartAsPNG(chart, 500300,
                    
    null, request.getSession());
            String graphURL 
    = request.getContextPath()
                    
    + "/displayChart?filename=" + filename;
            request.setAttribute(
    "graphURL", graphURL);
            
            
    // 標識
            request.setAttribute("msg""餅圖效果");

            
    // 頁面轉向
            RequestDispatcher dispatcher = request
                    .getRequestDispatcher(
    "/web/page/chart.jsp");
            dispatcher.forward(request, response);
            
    return;
        }


        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            doPost(request, response);
        }

    }


    頁面代碼:
    <%@ page contentType="text/html; charset=UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title>JFreeChart圖表效果</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" rev="stylesheet" href="web/css/style.css"
        type
    ="text/css" />
    </head>

    <body>
        
    <div id="bodyDiv">
            
    <div id="header">
                
    <jsp:include page="/web/page/branch/header.jsp"/>
            
    </div>
            
    <div id="sidebar">
                
    <jsp:include page="/web/page/branch/sidebar.jsp"/>
            
    </div>
            
    <div id="content">
                
    <table border=0 align="center">
                
    <%                
                    out.print(
    "<tr>");
                    
    String graphURL=(String)request.getAttribute("graphURL");            
                    out.print(
    "<td colspan=4 align=\"center\"><img src=\""+graphURL+"\"/></td>");
                    out.print(
    "</tr>");                
                
    %>
                
    </table>
            
    </div>
            
    <div id="footer">
                
    <jsp:include page="/web/page/branch/footer.jsp"/>
            
    </div>
        
    </div>
    </body>
    </html>

    2.3d餅圖


    Servlet代碼:
    package com.sitinspring.action;

    import java.awt.Color;
    import java.awt.Font;
    import java.util.Hashtable;
    import java.util.Map;

    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.general.DefaultKeyedValuesDataset;

    /**
     * 用于創建3D餅圖的Servlet
     * 
     * 
    @author sitinspring
     * 
     * @date 2008-2-12
     
    */

    public class Pie3DChartServlet extends HttpServlet {
        
    private static final long serialVersionUID = 56890894234786L;

        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            request.setCharacterEncoding(
    "UTF-8");

            Map
    <String,Integer> ht=new Hashtable<String,Integer>();
            ht.put(
    "美國"139800);
            ht.put(
    "日本"52900);
            ht.put(
    "德國"32800);
            ht.put(
    "中國"30100);
            ht.put(
    "英國"25700);
            ht.put(
    "法國"25200);
            ht.put(
    "意大利"20900);
            ht.put(
    "西班牙"14100);
            ht.put(
    "加拿大"13600);
            ht.put(
    "俄羅斯"11400);
            
            
    float sum=0;
            
    for(Integer i:ht.values()){
                sum
    +=i;
            }

            
            
    // 設定數據源
            DefaultKeyedValuesDataset piedata = new DefaultKeyedValuesDataset();

            
    // 向數據源中插值,第一個參數為名稱,第二個參數是double數
            for(String nation:ht.keySet()){
                piedata.setValue(nation, ((
    float)ht.get(nation))/sum*100);
            }

            
            
    // 使用ChartFactory來創建JFreeChart
            JFreeChart chart = ChartFactory.createPieChart3D("2007世界總GDP排名", piedata, true,
                    
    truetrue);
            
            
    // 設定圖片標題
            chart.setTitle(new TextTitle("2007世界總GDP排名"new Font("隸書", Font.ITALIC, 15)));

            
    // 設定背景
            chart.setBackgroundPaint(Color.white);
            
            
    // 創建文件并將圖片地址傳遞到頁面
            String filename = ServletUtilities.saveChartAsPNG(chart, 500300,
                    
    null, request.getSession());
            String graphURL 
    = request.getContextPath()
                    
    + "/displayChart?filename=" + filename;
            request.setAttribute(
    "graphURL", graphURL);
            
            
    // 標識
            request.setAttribute("msg""3D餅圖效果");

            
    // 頁面轉向
            RequestDispatcher dispatcher = request
                    .getRequestDispatcher(
    "/web/page/chart.jsp");
            dispatcher.forward(request, response);
            
    return;
        }


        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            doPost(request, response);
        }

    }


    3.折線圖


    Servlet代碼:
    package com.sitinspring.action;

    import java.util.LinkedHashMap;
    import java.util.Map;

    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.data.time.Day;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.jfree.data.time.TimeSeriesDataItem;

    /**
     * 用于創建折線圖的Servlet
     * 
     * 
    @author sitinspring
     * 
     * @date 2008-2-12
     
    */

    public class CurveChartServlet extends HttpServlet {
        
    private static final long serialVersionUID = 56890894234786L;

        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            request.setCharacterEncoding(
    "UTF-8");

            
    // 曲線圖標題
            String title = "趨勢分析";
            
    // 曲線圖X軸提示
            String domain = "年份";
            
    // 曲線圖Y軸提示
            String range = "GDP";

            
    // 創建時間數據源,每一個TimeSeries在圖上是一條曲線
            TimeSeries chinaTs = new TimeSeries("中國");
            Map
    <Integer, Integer> chinaht = new LinkedHashMap<Integer, Integer>();
            chinaht.put(
    200222100);
            chinaht.put(
    200314100);
            chinaht.put(
    200427100);
            chinaht.put(
    200538100);
            chinaht.put(
    200629000);
            chinaht.put(
    200790100);
            
            
    for (Integer i:chinaht.keySet()) {
                chinaTs.add(
    new TimeSeriesDataItem(new Day(11, i),new Double(chinaht.get(i))));            
            }


            
    // 創建時間數據源,每一個TimeSeries在圖上是一條曲線
            TimeSeries japanTs = new TimeSeries("日本");
            Map
    <Integer, Integer> japanht = new LinkedHashMap<Integer, Integer>();
            japanht.put(
    200043900);
            japanht.put(
    200363500);
            japanht.put(
    200443400);
            japanht.put(
    200563200);
            japanht.put(
    200653100);
            japanht.put(
    200732900);
            
            
    for (Integer i:japanht.keySet()) {
                japanTs.add(
    new TimeSeriesDataItem(new Day(11, i),new Double(japanht.get(i))));            
            }


            
    // 創建時間數據源,每一個TimeSeries在圖上是一條曲線
            TimeSeries usaTs = new TimeSeries("美國");
            Map
    <Integer, Integer> usaht = new LinkedHashMap<Integer, Integer>();
            usaht.put(
    2001100000);
            usaht.put(
    2003159800);
            usaht.put(
    2004109700);
            usaht.put(
    2005129600);
            usaht.put(
    20069800);
            usaht.put(
    2007149800);
            
            
    for (Integer i:usaht.keySet()) {
                usaTs.add(
    new TimeSeriesDataItem(new Day(11, i),new Double(usaht.get(i))));            
            }

            
            
    // 時間曲線數據集合
            TimeSeriesCollection dataset = new TimeSeriesCollection();
            dataset.addSeries(chinaTs);
            dataset.addSeries(japanTs);
            dataset.addSeries(usaTs);

            
    // 時間曲線元素
            JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,
                    range, dataset, 
    truetruefalse);

            
    // 創建文件并將圖片地址傳遞到頁面
            String filename = ServletUtilities.saveChartAsPNG(chart, 500300,
                    
    null, request.getSession());
            String graphURL 
    = request.getContextPath() + "/displayChart?filename="
                    
    + filename;
            request.setAttribute(
    "graphURL", graphURL);

            
    // 標識
            request.setAttribute("msg""折線圖效果");

            
    // 頁面轉向
            RequestDispatcher dispatcher = request
                    .getRequestDispatcher(
    "/web/page/chart.jsp");
            dispatcher.forward(request, response);
            
    return;
        }


        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            doPost(request, response);
        }

    }


    4.柱圖


    Servlet代碼:
    package com.sitinspring.action;

    import java.awt.Color;
    import java.awt.Font;
    import java.util.Hashtable;
    import java.util.Map;

    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.category.DefaultCategoryDataset;

    /**
     * 用于創建柱圖的Servlet
     * 
     * 
    @author sitinspring
     * 
     * @date 2008-2-12
     
    */

    public class ColumnChartServlet extends HttpServlet {
        
    private static final long serialVersionUID = 56890894234786L;

        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            request.setCharacterEncoding(
    "UTF-8");

            Map
    <String,Integer> ht=new Hashtable<String,Integer>();
            ht.put(
    "美國"139800);
            ht.put(
    "日本"52900);
            ht.put(
    "德國"32800);
            ht.put(
    "中國"30100);
            ht.put(
    "英國"25700);
            ht.put(
    "法國"25200);
            ht.put(
    "意大利"20900);
            ht.put(
    "西班牙"14100);
            ht.put(
    "加拿大"13600);
            ht.put(
    "俄羅斯"11400);
            
            
    float sum=0;
            
    for(Integer i:ht.values()){
                sum
    +=i;
            }

            
            
    // 設定數據源
            DefaultCategoryDataset dataset = new DefaultCategoryDataset();

            
    // 向數據源中插值,第一個參數為名稱,第二個參數是double數
            int i=0;
            
    for(String nation:ht.keySet()){
                i
    ++;
                dataset.addValue((
    float)ht.get(nation), String.valueOf(i), nation);
            }

            
            
    // 使用ChartFactory來創建JFreeChart
            JFreeChart chart = ChartFactory.createBarChart3D("收支統計圖""國家",
                    
    "數額", dataset, PlotOrientation.VERTICAL, falsefalse,
                    
    false);
            
            
    // 設定圖片標題
            chart.setTitle(new TextTitle("2007世界總GDP排名"new Font("隸書", Font.ITALIC, 15)));

            
    // 設定背景
            chart.setBackgroundPaint(Color.white);
            
            
    // 創建文件并將圖片地址傳遞到頁面
            String filename = ServletUtilities.saveChartAsPNG(chart, 500300,
                    
    null, request.getSession());
            String graphURL 
    = request.getContextPath()
                    
    + "/displayChart?filename=" + filename;
            request.setAttribute(
    "graphURL", graphURL);
            
            
    // 標識
            request.setAttribute("msg""3D柱圖效果");

            
    // 頁面轉向
            RequestDispatcher dispatcher = request
                    .getRequestDispatcher(
    "/web/page/chart.jsp");
            dispatcher.forward(request, response);
            
    return;
        }


        
    public void doGet(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, java.io.IOException {
            doPost(request, response);
        }

    }



    例程下載(請在lib中加入jcommon-1.0.8.jar和jfreechart-1.0.6.jar):
    http://www.tkk7.com/Files/sitinspring/JFreeChartSample20080408130142.rar

    posted on 2008-04-08 13:00 sitinspring 閱讀(3601) 評論(6)  編輯  收藏 所屬分類: Web開發

    評論

    # re: JFreeChat四種圖表的繪制例程 2008-05-30 13:46 we

    不是時間曲線圖如何制作?能不能些個例子謝謝!  回復  更多評論   

    # re: JFreeChat四種圖表的繪制例程 2010-08-09 13:43 zhangnian

    我按你這樣寫,為什么圖片不顯示  回復  更多評論   

    # re: JFreeChat四種圖表的繪制例程 2010-08-09 13:44 zhangnian

    可以把那個曲線圖給我份完整的代碼嗎,謝謝!714378662@QQ.com  回復  更多評論   

    # re: JFreeChat四種圖表的繪制例程 2010-08-09 14:06 何楊

    http://www.tkk7.com/Files/sitinspring/JFreeChartSample20080408130142.rar  回復  更多評論   

    # re: JFreeChat四種圖表的繪制例程[未登錄] 2010-08-11 11:55 楊超

    @zhangnian
    在你的web.xml 里加上:  回復  更多評論   

    # re: JFreeChat四種圖表的繪制例程[未登錄] 2010-08-11 11:55 楊超


    <servlet>
    <servlet-name>DisplayChart</servlet-name>
    <servlet-class>
    org.jfree.chart.servlet.DisplayChart
    </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>DisplayChart</servlet-name>
    <url-pattern>/displayChart</url-pattern>
    </servlet-mapping>  回復  更多評論   

    sitinspring(http://www.tkk7.com)原創,轉載請注明出處.
    主站蜘蛛池模板: 国产区图片区小说区亚洲区| 亚洲国产精品综合久久一线 | 性xxxxx免费视频播放| 三级片免费观看久久| 亚洲AV成人一区二区三区在线看 | 99在线免费视频| 偷自拍亚洲视频在线观看99| 亚洲一区在线视频| 亚洲综合一区二区精品导航| 久久亚洲AV无码西西人体| 国产精品成人无码免费| 欧美a级成人网站免费| 永久在线免费观看| 青青草原1769久久免费播放| 亚洲黄片手机免费观看| 美景之屋4在线未删减免费| 亚洲日韩一区二区一无码| 亚洲国产理论片在线播放| 67pao强力打造67194在线午夜亚洲| 亚洲中文字幕在线第六区| 亚洲第一成人影院| 国产在线观看免费不卡| 成人免费网站在线观看| 4hu四虎最新免费地址| 久久99热精品免费观看动漫| a视频在线免费观看| 中文字幕在线免费观看视频| 美景之屋4在线未删减免费 | 57pao一国产成视频永久免费| 久久永久免费人妻精品| 好湿好大好紧好爽免费视频| 人成午夜免费大片在线观看| 国产精品亚洲专区在线播放| 国产精品无码亚洲一区二区三区| 亚洲午夜无码久久久久小说| 亚洲熟女精品中文字幕| 亚洲精品成a人在线观看夫 | 国产真实伦在线视频免费观看| 四虎www免费人成| 永久免费毛片手机版在线看| 日韩精品视频免费网址|