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

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

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

    waysun一路陽光

    不輕易服輸,不輕言放棄.--心是夢的舞臺,心有多大,舞臺有多大。踏踏實實做事,認認真真做人。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      167 隨筆 :: 1 文章 :: 64 評論 :: 0 Trackbacks
    因為我所在的項目需要用到動態生成顯示圖片,于是研究了一點,先把源代碼以及完整的例子貼出來。
    (1)畫柱狀圖
    JAVA源代碼:

    /**
    *@author qingbao-gao
    *<p>Blog:http://www.cnweblog.com/nm1504</p>
    *<p>E-mail:yyk1504@163.com</p>
    *<p>創建時間:2008-1-3</p>
    *<p>Copyright: XXxxxXX (c)2008-1-3</p>
    */
    package com.mfsoft.net.jfreemap;

    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.plot.PlotOrientation;
    import org.jfree.data.category.DefaultCategoryDataset;

    import java.awt.Color;
    import org.jfree.chart.renderer.category.BarRenderer3D;
    import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
    import org.jfree.chart.axis.CategoryAxis;
    import org.jfree.chart.plot.CategoryPlot;

    import com.mfsoft.credit.modelmang.operation.EvalItemDataOperation;
    import com.mfsoft.credit.modelmang.operation.ModelDataTypeOperation;
    import com.mfsoft.net.pre.MoveWeightAverage;
    import com.mfsoft.net.pre.TimeSeriesForecast;

    public class DisplayMap
    {
     public DisplayMap()
     {
      
     }
     /**
      * <P>獲得圖形</P>
      * @param test           數據存儲數組
      * @param polyLineResult 柱狀圖要顯示的柱形
      * @param simuResult     柱狀圖要顯示的柱形
      * @param moveResult     柱狀圖要顯示的柱形
      * @param timeResult     柱狀圖要顯示的柱形
      * @author qingbao-gao
      * <p>Date:2008-01-03 PM 2:21</p>
      * @return               JFreeChart形式的對象供調用
      */

     public static JFreeChart displayResult(double[][]test,int polyLineResult,int simuResult,int moveResult,int timeResult)
     {
      int length=test.length;
        DefaultCategoryDataset dataset    = new DefaultCategoryDataset();
        //double [][]test=mdt.getMonthData("200609","200708","1100000000023","R");
        /*
          double[][]test=new double[][]{
            {200606 ,63534},
            {200607 ,64624},
            {200608 ,64947},
            {200609 ,64996},
            {200610 ,65201},
            {200611 ,65318},
            {200612 ,65800},
            {200701 ,66126},
            {200702 ,66238},
            {200703 ,66553},
            {200704 ,66790},
            {200705 ,67125},
            {200706 ,67461},
            {200707 ,67833},
            {200708 ,68064},
            {200709 ,68329},
             };*/
           //int taps=4;
            for(int i=0;i<test.length-1;i++)
            {
         dataset.addValue(test[i][1], "各月份數據", (String.valueOf(test[i][0])).substring(2, 7));
         //dataset.addValue(450, "各月份數據", "2月份");
         //dataset.addValue(550, "各月份數據", "3月份");
         //dataset.addValue(600, "各月份數據", "4月份");
            }
            EvalItemDataOperation ei=new EvalItemDataOperation();
            String nextMonth=ei.getNextMonth(String.valueOf(test[length-1][0]));
           dataset.addValue(simuResult, "神經網絡預測", nextMonth);
           dataset.addValue(timeResult, "時間序列預測", nextMonth);
           dataset.addValue(moveResult, "移動加權平均", nextMonth);
           dataset.addValue(polyLineResult, "曲線擬合預測", nextMonth);
       
         JFreeChart chart = ChartFactory.createBarChart3D("時間序列柱狀圖-四種預測方法比較","預測顯示比較","實際客
    戶數與預測客戶數",dataset,PlotOrientation.VERTICAL,true,false,false);
        chart.setBackgroundPaint(Color.WHITE);
        CategoryPlot catePlot = chart.getCategoryPlot();

        CategoryAxis domainAxis = catePlot.getDomainAxis();
              //domainAxis.setVerticalCategoryLabels(false);
        catePlot.setDomainAxis(domainAxis);

              BarRenderer3D renderer = new BarRenderer3D();
              renderer.setBaseOutlinePaint(Color.BLACK);

              //設置每個地區所包含的平行柱的之間距離
              renderer.setItemMargin(0.1);
              //顯示每個柱的數值,并修改該數值的字體屬性
              renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
              renderer.setItemLabelsVisible(true);
              catePlot.setRenderer(renderer);
              //設置柱的透明度
              catePlot.setForegroundAlpha(0.8f);
              return chart;
     }

    }

    下面是JSP里調用上面的類實現圖片顯示的JSP文件
    <%@page contentType="text/html; charset=GB2312"%>
    <%@page import="org.jfree.chart.ChartUtilities"%>
    <%@page import="org.jfree.chart.JFreeChart"%>
    <%@page import="com.mfsoft.net.jfreemap.DisplayMap" %>
    <%@page contentType="text/html; charset=GB2312"%>
    <%@page import="com.mfsoft.credit.modelmang.operation.EvalItemDataOperation" %>
    <%@page import="com.mfsoft.net.jfreemap.*" %>
    <%@page import="com.mfsoft.credit.modelmang.operation.ModelDataTypeOperation" %>

    <html>
    <head>
    <title>柱狀圖顯示結果</title>
    </head>
    <body>
    <%

     String timeType=(String)request.getParameter("timeType");
     String areaid=(String)request.getParameter("areaid");
     String areaType=(String)request.getParameter("areaType");
     String endTime=EvalItemDataOperation.getEndYearsToday();
     String startTime=EvalItemDataOperation.getNYearsToday(endTime,1);
     int lineScore=55000;
     int nnetScore=45632;
     int timeScore=50000;
     int moveWeightScore=60000;
     nnetScore=Integer.valueOf((String)request.getParameter("nnetScore"));
     lineScore=Integer.valueOf((String)request.getParameter("lineScore"));
     timeScore=Integer.valueOf((String)request.getParameter("timeScore"));
     moveWeightScore=Integer.valueOf((String)request.getParameter("moveWeightScore"));
        MoveWeightLineMap mp=new MoveWeightLineMap();
        double[][]st={{}};
        if(timeType!=null&&areaid!=null&&areaType!=null)
        {
            if(timeType.equals("0"))
            {
                st=ModelDataTypeOperation.getMonthData(startTime,endTime,areaid,areaType);
            }
            else
            if(timeType.equals("1"))
            {
                st=ModelDataTypeOperation.getThirdYearData(startTime,endTime,areaid,areaType);
            }
            else
            if(timeType.equals("2"))
            {
                st=ModelDataTypeOperation.getHalfYearData(startTime,endTime,areaid,areaType);
            }
            else
            {
                st=ModelDataTypeOperation.getYearData(startTime,endTime,areaid,areaType);
            }
         DisplayMap dm=new DisplayMap();
         JFreeChart chart=dm.displayResult(st,lineScore, nnetScore, moveWeightScore, timeScore);
         ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,1000,600);
        }
        else
        {
             out.print("傳遞過來的值為空,不能顯示柱狀圖");
        }
    %>
    </body>
    </html>

    posted on 2008-06-20 08:52 weesun一米陽光 閱讀(2040) 評論(2)  編輯  收藏 所屬分類: 總結備用

    評論

    # re: JfreeChar實現JSP頁面繪圖以及圖片顯示【原創】 2012-10-15 21:51 卞曉晨
    import com.mfsoft.credit.modelmang.operation.EvalItemDataOperation;
    import com.mfsoft.credit.modelmang.operation.ModelDataTypeOperation;
    import com.mfsoft.net.pre.MoveWeightAverage;
    import com.mfsoft.net.pre.TimeSeriesForecast;



    這些包如何找到?  回復  更多評論
      

    # re: JfreeChar實現JSP頁面繪圖以及圖片顯示【原創】 2012-10-16 09:41 waysun
    自定義的類@卞曉晨
      回復  更多評論
      

    主站蜘蛛池模板: 九九久久国产精品免费热6 | 18女人水真多免费高清毛片| 亚洲精品无码久久不卡| 亚洲日韩AV无码一区二区三区人| 亚洲国产精品人久久电影| 久草免费福利在线| 亚洲AV无码乱码精品国产| 老司机福利在线免费观看| 亚洲伊人久久综合影院| 国产免费久久久久久无码| 亚洲国产精品一区二区第一页 | 又粗又硬又黄又爽的免费视频| 国产亚洲情侣一区二区无| 亚洲免费日韩无码系列| 色久悠悠婷婷综合在线亚洲| 亚洲日韩在线观看免费视频| 国产亚洲日韩一区二区三区| 国产激情久久久久影院老熟女免费| 免费AA片少妇人AA片直播| 亚洲熟妇无码AV| 国产午夜免费秋霞影院| 一区二区三区免费视频观看| 亚洲精品偷拍视频免费观看| 国内精品免费在线观看| 亚洲国产成人久久精品app| 大香人蕉免费视频75| 日韩免费在线中文字幕| 久久精品国产精品亚洲艾草网| 日韩a毛片免费观看| 亚洲精品乱码久久久久久按摩 | 亚洲精品视频在线观看视频| 最近免费中文字幕大全免费| 亚洲综合无码无在线观看| 亚洲?V乱码久久精品蜜桃| 免费网站看av片| 亚洲中文无码mv| 三上悠亚亚洲一区高清| 成年人免费的视频| 精品一区二区三区免费观看| 亚洲国产精品久久丫| 亚洲性在线看高清h片|