<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  回復  更多評論
      

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


    網站導航:
     
    主站蜘蛛池模板: 一级毛片人与动免费观看| 99精品一区二区免费视频| 精品久久香蕉国产线看观看亚洲| 99久久免费国产特黄| 亚洲精品美女久久久久9999| 情侣视频精品免费的国产| 日本视频免费高清一本18| 日韩亚洲不卡在线视频中文字幕在线观看| 免费A级毛片在线播放不收费| 久久久国产精品无码免费专区| 亚洲人成色在线观看| 亚洲AV乱码久久精品蜜桃| 国产成人无码免费视频97| 久久狠狠躁免费观看| 菠萝菠萝蜜在线免费视频| 亚洲成在人线电影天堂色| 亚洲美女高清一区二区三区 | 国产午夜亚洲精品不卡| 亚洲成a人片在线观看中文动漫 | 久久综合AV免费观看| a级成人毛片免费视频高清| 亚洲精品无码av片| 久久亚洲中文字幕精品有坂深雪 | 免费人成在线观看网站品爱网| 亚洲无吗在线视频| 亚洲AV区无码字幕中文色| 国产一卡二卡≡卡四卡免费乱码| 午夜精品一区二区三区免费视频| 香港经典a毛片免费观看看| 亚洲日本乱码卡2卡3卡新区| 久久亚洲国产精品五月天| 亚洲人成色7777在线观看不卡 | 国产成人精品免费视频大全麻豆| 一级做a毛片免费视频| 亚洲欧美国产国产综合一区| 亚洲自偷自拍另类图片二区| 美腿丝袜亚洲综合| 免费一级毛片正在播放| 夫妻免费无码V看片| 中文字幕免费在线看线人 | 在线亚洲v日韩v|