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

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

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

    posts - 241,  comments - 116,  trackbacks - 0
    package com.hong.bean;

    import java.awt.Color;
    import java.awt.Font;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.text.NumberFormat;
    import java.text.SimpleDateFormat;
    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.axis.DateAxis;
    import org.jfree.chart.axis.NumberAxis;
    import org.jfree.chart.entity.StandardEntityCollection;
    import org.jfree.chart.labels.StandardXYToolTipGenerator;
    import org.jfree.chart.plot.XYPlot;
    import org.jfree.chart.renderer.xy.XYItemRenderer;
    import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.chart.title.TextTitle;
    import org.jfree.data.time.Day;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.jfree.data.xy.XYDataset;
    import org.jfree.ui.RectangleInsets;

    /**
    * @author caiwb 曲線圖的繪制
    */
    public class LineXYChart
    {
        /**
         * 返回生成圖片的文件名
         * @param session
         * @param pw
         * @return 生成圖片的文件名
         */
        public String getLineXYChart(HttpSession session, PrintWriter pw)
        {
            XYDataset dataset = this.createDateSet();//建立數據集
            String fileName = null;
            //建立JFreeChart
            JFreeChart chart = ChartFactory.createTimeSeriesChart(
                    "JFreeChart時間曲線序列圖", // title
                    "Date", // x-axis label
                    "Price", // y-axis label
                    dataset, // data
                    true, // create legend?
                    true, // generate tooltips?
                    false // generate URLs?
                    );
            //設置JFreeChart的顯示屬性,對圖形外部部分進行調整
            chart.setBackgroundPaint(Color.red);//設置曲線圖背景色
            //設置字體大小,形狀
            Font font = new Font("宋體", Font.BOLD, 16);
            TextTitle title = new TextTitle("JFreeChart時間曲線序列圖", font);
            chart.setTitle(title);

            XYPlot plot = (XYPlot) chart.getPlot();//獲取圖形的畫布
            plot.setBackgroundPaint(Color.lightGray);//設置網格背景色
            plot.setDomainGridlinePaint(Color.green);//設置網格豎線(Domain軸)顏色
            plot.setRangeGridlinePaint(Color.white);//設置網格橫線顏色
            plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));//設置曲線圖與xy軸的距離
            plot.setDomainCrosshairVisible(true);
            plot.setRangeCrosshairVisible(true);
            XYItemRenderer r = plot.getRenderer();
            if (r instanceof XYLineAndShapeRenderer)
            {
                XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
                renderer.setDefaultShapesVisible(true);
                renderer.setDefaultShapesFilled(true);
                renderer.setShapesVisible(true);//設置曲線是否顯示數據點
            }

            //設置Y軸
            NumberAxis numAxis = (NumberAxis) plot.getRangeAxis();
            NumberFormat numFormater = NumberFormat.getNumberInstance();
            numFormater.setMinimumFractionDigits(2);
            numAxis.setNumberFormatOverride(numFormater);

            //設置提示信息
            StandardXYToolTipGenerator tipGenerator = new StandardXYToolTipGenerator(
                    "歷史信息:({1} 16:00,{2})", new SimpleDateFormat("MM-dd"),
                    numFormater);
            r.setToolTipGenerator(tipGenerator);

            //設置X軸(日期軸)
            DateAxis axis = (DateAxis) plot.getDomainAxis();
            axis.setDateFormatOverride(new SimpleDateFormat("MM-dd"));

            ChartRenderingInfo info = new ChartRenderingInfo(
                    new StandardEntityCollection());
            try
            {
                fileName = ServletUtilities.saveChartAsPNG(chart, 500, 300, info,
                        session);//生成圖片
    //          Write the image map to the PrintWriter
                ChartUtilities.writeImageMap(pw, fileName, info, false);
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
            pw.flush();
            return fileName;//返回生成圖片的文件名
        }

        /**
         * 建立生成圖形所需的數據集
         * @return 返回數據集
         */
        private XYDataset createDateSet()
        {
            TimeSeriesCollection dataset = new TimeSeriesCollection();//時間曲線數據集合
            TimeSeries s1 = new TimeSeries("歷史曲線", Day.class);//創建時間數據源,每一個//TimeSeries在圖上是一條曲線

            //s1.add(new Day(day,month,year),value),添加數據點信息
            s1.add(new Day(1, 2, 2006), 123.51);
            s1.add(new Day(2, 2, 2006), 122.1);
            s1.add(new Day(3, 2, 2006), 120.86);
            s1.add(new Day(4, 2, 2006), 122.50);
            s1.add(new Day(5, 2, 2006), 123.12);
            s1.add(new Day(6, 2, 2006), 123.9);
            s1.add(new Day(7, 2, 2006), 124.47);
            s1.add(new Day(8, 2, 2006), 124.08);
            s1.add(new Day(9, 2, 2006), 123.55);
            s1.add(new Day(10, 2, 2006), 122.53);

            dataset.addSeries(s1);
            dataset.setDomainIsPointsInTime(true);
            return dataset;
        }
    }

    在jsp文件中顯示圖片
    首先在Web應用程序部署文件web.xml中添加以下代碼:

    <!-- 圖片顯示,使用專用的servlet來進行顯示,它會完成路徑的搜索及映射 -->
    <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>/servlet/DisplayChart</url-pattern>
    </servlet-mapping>
    然后在jsp中顯示圖片
    完整的jsp文件:
    <!--文件名稱:timeLine.jsp-->
    <%@ page contentType="text/html;charset=gb2312" pageEncoding="GB2312"%>
    <%@ page import="com.caiwb.bean.LineXYChart"%>
    <%@ page import = "java.io.PrintWriter" %>
    <%
    LineXYChart xyChart=new LineXYChart();
    String fileName=xyChart.getLineXYChart(session,new PrintWriter(out));
      String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
    %>
    <html>
    </head>
    <title> JFreeChart使用例子</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body>
    <img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= fileName %>">
    </body>
    </html>
    posted on 2012-02-07 17:30 墻頭草 閱讀(493) 評論(0)  編輯  收藏

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


    網站導航:
     
    人人游戲網 軟件開發網 貨運專家
    主站蜘蛛池模板: 午夜无遮挡羞羞漫画免费| 免费观看一级毛片| 亚洲伊人色欲综合网| 欧洲精品码一区二区三区免费看| 在线免费观看一级片| 亚洲成a人片在线看| 人成午夜免费视频在线观看| 亚洲成人网在线观看| 69av免费观看| 亚洲欧洲日产国码在线观看| 久久久免费精品re6| 亚洲婷婷在线视频| 亚洲人成网站免费播放| 亚洲成a人片在线不卡一二三区 | 国产午夜免费秋霞影院| 亚洲精品第一国产综合亚AV| 国产免费观看a大片的网站| 一级特黄a免费大片| 亚洲狠狠婷婷综合久久久久| 无码av免费网站| 国产精品亚洲综合五月天| 在线观看免费亚洲| 国产免费牲交视频免费播放| 亚洲日韩图片专区第1页| 福利免费观看午夜体检区| 国产成人综合亚洲一区| 亚洲精品无码久久一线| 24小时在线免费视频| 亚洲欧美国产欧美色欲| 国产亚洲AV手机在线观看| 亚洲网站在线免费观看| 国产亚洲福利一区二区免费看| 亚洲国产精品无码久久一区二区| 四虎成年永久免费网站| 国产成人精品亚洲| 亚洲国产精品久久久久网站| 暖暖日本免费在线视频| 日韩精品内射视频免费观看| 亚洲精品动漫免费二区| 亚洲国产精品免费视频| 四虎国产精品免费视|