<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://m.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://m.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://m.tkk7.com)原創,轉載請注明出處.
    主站蜘蛛池模板: 亚洲熟伦熟女新五十路熟妇| 国产免费内射又粗又爽密桃视频| 青青草97国产精品免费观看| 日韩免费三级电影| 亚洲免费在线视频观看| 国产成人精品免费视频大全麻豆 | 亚洲无吗在线视频| 国产亚洲色视频在线| 德国女人一级毛片免费| 四虎最新永久免费视频| 国产99久久久国产精免费| 少妇亚洲免费精品| 国产精品成人亚洲| 亚洲乱码中文字幕综合234| 青青操免费在线视频| 一进一出60分钟免费视频| 国产区卡一卡二卡三乱码免费| 亚洲av综合av一区二区三区| 久久亚洲AV成人无码软件| 久久国产精品亚洲综合| 亚洲无码日韩精品第一页| 国产在线观看免费视频播放器| a级毛片免费在线观看| 西西人体免费视频| 久草视频在线免费看| 亚洲国产精华液2020| 亚洲av成人一区二区三区观看在线 | 久久精品国产精品亚洲艾| 久久国产精品免费专区| 免费国产污网站在线观看15| 无码国产精品一区二区免费16| 久久精品电影免费动漫| 91成年人免费视频| 免费一级做a爰片久久毛片潮| 特级做a爰片毛片免费看| 成人一区二区免费视频| 久青草国产免费观看| 99久久精品国产免费| 日韩电影免费在线观看视频| 亚洲综合色自拍一区| 亚洲乱码中文字幕综合234|