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

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

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

    隨筆-126  評論-247  文章-5  trackbacks-0

    接上一篇隨筆 JFreeChart 生成 柱狀圖 ,環境及其配置不變,只是將生成柱狀圖的核心類 CylinderAction 替換成 CurveAction,讓 CurveAction來負責折線圖的生成,看下代碼:


    package com.fancy.action;

    import java.awt.Color;
    import java.text.SimpleDateFormat;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.DateAxis;
    import org.jfree.chart.servlet.ServletUtilities;
    import org.jfree.data.time.Month;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    /**
     * -----------------------------------------
     * @描述  折線圖
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-8-7 <p>
     * -----------------------------------------
     
    */

    public class CurveAction extends BaseAction{

        
    private static final long serialVersionUID = 1L;
        
    private String fileName;
        
        
    public String execute() throws Exception{
            
            TimeSeries series2010 
    = new TimeSeries("2010年度", Month.class);
            TimeSeries series2011 
    = new TimeSeries("2011年度", Month.class);
            TimeSeriesCollection dataset 
    = new TimeSeriesCollection();
            
            series2010.add(
    new Month(12011), 36);
            series2010.add(
    new Month(22011), 84);
            series2010.add(
    new Month(32011), 202);
            series2010.add(
    new Month(42011), 183);
            series2010.add(
    new Month(52011), 172);
            series2010.add(
    new Month(62011), 107);
            series2010.add(
    new Month(72011), 200);
            series2010.add(
    new Month(82011), 87);
            series2010.add(
    new Month(92011), 250);
            series2010.add(
    new Month(102011), 152);
            series2010.add(
    new Month(112011), 235);
            series2010.add(
    new Month(122011), 266);
            

            series2011.add(
    new Month(12011), 156);
            series2011.add(
    new Month(22011), 216);
            series2011.add(
    new Month(32011), 118);
            series2011.add(
    new Month(42011), 250);
            series2011.add(
    new Month(52011), 257);
            series2011.add(
    new Month(62011), 253);
            series2011.add(
    new Month(72011), 355);
            series2011.add(
    new Month(82011), 300);
            series2011.add(
    new Month(92011), 103);
            series2011.add(
    new Month(102011), 250);
            series2011.add(
    new Month(112011), 348);
            series2011.add(
    new Month(122011), 325);
            
            dataset.addSeries(series2010);
            dataset.addSeries(series2011);
            JFreeChart chart 
    = ChartFactory.createTimeSeriesChart("A產品銷售量""""", dataset, truetruefalse);
            DateAxis dateaxis 
    = (DateAxis)chart.getXYPlot().getDomainAxis();
            dateaxis.setDateFormatOverride(
    new SimpleDateFormat("MM月"));
            chart.setBackgroundPaint(Color.WHITE);
            fileName 
    = ServletUtilities.saveChartAsPNG(chart, 500300null, getHttpSession());
            
    return "curve";
        }


        
    public String getFileName() {
            
    return fileName;
        }


    }



    將 cylinder.jsp 拷貝一份名字改成 curve.jsp,其余不變,訪問:http://localhost:8080/jfreechart-demo/curve.html 的結果如圖示:


    在上圖中,可以看出年度A產品的大概走勢,但并沒有具體的數據值,為使折線上的數據點的數值能夠被顯示出來,下面在 CurveAction 類中添加代碼:


    package com.fancy.action;

    import java.awt.Color;
    import java.awt.Font;
    import java.text.SimpleDateFormat;
    import org.jfree.chart.ChartFactory;
    import org.jfree.chart.JFreeChart;
    import org.jfree.chart.axis.DateAxis;
    import org.jfree.chart.axis.ValueAxis;
    import org.jfree.chart.labels.ItemLabelAnchor;
    import org.jfree.chart.labels.ItemLabelPosition;
    import org.jfree.chart.labels.StandardXYItemLabelGenerator;
    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.data.time.Month;
    import org.jfree.data.time.TimeSeries;
    import org.jfree.data.time.TimeSeriesCollection;
    import org.jfree.ui.TextAnchor;
    /**
     * -----------------------------------------
     * @描述  折線圖
     * @作者  fancy
     * @郵箱  fancydeepin@yeah.net
     * @日期  2012-8-7 <p>
     * -----------------------------------------
     
    */

    public class CurveAction extends BaseAction{

        
    private static final long serialVersionUID = 1L;
        
    private String fileName;
        
        
    public String execute() throws Exception{
            
            TimeSeries series2010 
    = new TimeSeries("2010年度", Month.class);
            TimeSeries series2011 
    = new TimeSeries("2011年度", Month.class);
            TimeSeriesCollection dataset 
    = new TimeSeriesCollection();
            
            series2010.add(
    new Month(12011), 36);
            series2010.add(
    new Month(22011), 84);
            series2010.add(
    new Month(32011), 202);
            series2010.add(
    new Month(42011), 183);
            series2010.add(
    new Month(52011), 172);
            series2010.add(
    new Month(62011), 107);
            series2010.add(
    new Month(72011), 200);
            series2010.add(
    new Month(82011), 87);
            series2010.add(
    new Month(92011), 250);
            series2010.add(
    new Month(102011), 152);
            series2010.add(
    new Month(112011), 235);
            series2010.add(
    new Month(122011), 266);
            

            series2011.add(
    new Month(12011), 156);
            series2011.add(
    new Month(22011), 216);
            series2011.add(
    new Month(32011), 118);
            series2011.add(
    new Month(42011), 250);
            series2011.add(
    new Month(52011), 257);
            series2011.add(
    new Month(62011), 253);
            series2011.add(
    new Month(72011), 355);
            series2011.add(
    new Month(82011), 300);
            series2011.add(
    new Month(92011), 103);
            series2011.add(
    new Month(102011), 250);
            series2011.add(
    new Month(112011), 348);
            series2011.add(
    new Month(122011), 325);
            
            dataset.addSeries(series2010);
            dataset.addSeries(series2011);
            JFreeChart chart 
    = ChartFactory.createTimeSeriesChart("A產品銷售量""""", dataset, truetruefalse);
            DateAxis dateaxis 
    = (DateAxis)chart.getXYPlot().getDomainAxis();
            dateaxis.setDateFormatOverride(
    new SimpleDateFormat("MM月"));
            chart.setBackgroundPaint(Color.WHITE);
            
            XYPlot plot 
    = (XYPlot)chart.getPlot();
            XYLineAndShapeRenderer xylineandshaperenderer 
    = (XYLineAndShapeRenderer)plot.getRenderer();
            
    //設置曲線是否顯示數據點 
            xylineandshaperenderer.setBaseShapesVisible(true);
            
    //設置曲線顯示各數據點的值 
            XYItemRenderer xyitem = plot.getRenderer();
            xyitem.setBaseItemLabelsVisible(
    true);
            xyitem.setBasePositiveItemLabelPosition(
    new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
            xyitem.setBaseItemLabelGenerator(
    new StandardXYItemLabelGenerator());
            xyitem.setBaseItemLabelFont(
    new Font("Dialog"114));
            plot.setRenderer(xyitem);
            ValueAxis rangeAxis 
    = plot.getRangeAxis();
            
    //距離上邊距邊框距離
            rangeAxis.setUpperMargin(0.3);
            
    //距離下邊框邊距距離
            rangeAxis.setLowerMargin(0.5);
            ValueAxis domainAxis 
    = plot.getDomainAxis();
            
    // 左邊距 邊框距離   
            domainAxis.setLowerMargin(0.05);
            
    // 右邊距 邊框距離,防止最后邊的一個數據靠近了坐標軸。 
            domainAxis.setUpperMargin(0.1);
            
            fileName 
    = ServletUtilities.saveChartAsPNG(chart, 500300null, getHttpSession());
            
    return "curve";
        }


        
    public String getFileName() {
            
    return fileName;
        }


    }



    OK,再次訪問的結果如圖示:




      
    posted on 2012-08-07 12:00 fancydeepin 閱讀(2672) 評論(1)  編輯  收藏

    評論:
    # re: JFreeChart 生成 折線圖(Struts2 + Maven3 + JFreeChart)[未登錄] 2012-12-08 23:42 | 流云
    我將上面的例子重新用Myeclipse+struts2.2.1+JFreeChart1.0.14來實踐,但是Tomcat服務沒發啟動喲!希望和你交流一下:QQ:316735818  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 一级做a爰性色毛片免费| 成年午夜视频免费观看视频 | 精品国产亚洲一区二区三区在线观看| 亚洲国产成人无码av在线播放| 亚洲喷奶水中文字幕电影| 亚洲中文字幕无码亚洲成A人片| 国产精品亚洲一区二区在线观看| 看一级毛片免费观看视频| 久久99精品免费一区二区| 久久永久免费人妻精品下载| 中文字幕无码成人免费视频| 国产真实伦在线视频免费观看| 国产亚洲精品精品国产亚洲综合| 久久亚洲国产精品成人AV秋霞| 亚洲色精品三区二区一区| 国产免费一区二区视频| 精品国产免费观看久久久| 美腿丝袜亚洲综合| 久久亚洲精品成人无码| 免费国产成人午夜在线观看| 国产精品国产午夜免费福利看| 亚洲高清在线观看| 特级做a爰片毛片免费看| 成人黄18免费视频| 亚洲精品成人久久| 日韩免费在线观看视频| 亚洲精品成人a在线观看| 亚洲AV综合色区无码一二三区| 2019中文字幕免费电影在线播放| 亚洲精品无码久久毛片| 久久精品国产亚洲AV| 在线播放高清国语自产拍免费| 久久精品国产亚洲AV麻豆不卡| 中国一级全黄的免费观看| 大胆亚洲人体视频| 污视频网站在线免费看| 热99re久久免费视精品频软件| 亚洲av女电影网| 免费无码成人AV在线播放不卡| 亚洲精品午夜无码专区| 成全视成人免费观看在线看|