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

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

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

    午后星期午

    JFreeChart 生成 折線圖(Struts2 + Maven3 + JFreeChart)

    接上一篇隨筆 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,再次訪問的結果如圖示:





       [ 轉載出處:http://www.tkk7.com/fancydeepin ]

    posted on 2013-12-31 13:48 午后星期午 閱讀(117) 評論(0)  編輯  收藏 所屬分類: JavaEE

    主站蜘蛛池模板: 91香蕉国产线观看免费全集| 亚洲av最新在线观看网址| 一二三区免费视频| 免费永久国产在线视频| 色天使亚洲综合一区二区| 国产精品另类激情久久久免费| 亚洲精品亚洲人成在线播放| 成人AV免费网址在线观看| 中日韩亚洲人成无码网站| 女性自慰aⅴ片高清免费| 亚洲av永久中文无码精品| 免费v片在线观看无遮挡| 理论片在线观看免费| 国产精品亚洲精品日韩已方| 国产精品黄页免费高清在线观看 | 成年女人毛片免费视频| 亚洲色大成网站www永久男同| 热99re久久免费视精品频软件 | 国产精品亚洲成在人线| 国产午夜精品久久久久免费视| 亚洲av中文无码乱人伦在线咪咕| 最近免费中文字幕高清大全| 亚洲一区免费在线观看| 成人爱做日本视频免费| 久久久久久噜噜精品免费直播| 亚洲AV永久无码精品一百度影院| 精品久久8x国产免费观看| 久久亚洲精品中文字幕无码| 免费A级毛片无码专区| 国产精品亚洲精品青青青| 免费又黄又爽又猛的毛片| 国产免费拔擦拔擦8X高清在线人| 亚洲永久中文字幕在线| 日韩免费观看视频| 在线免费播放一级毛片| 亚洲成AV人片久久| 亚洲国产一级在线观看| 2019中文字幕免费电影在线播放| 亚洲高清国产拍精品熟女| 亚洲色欲久久久综合网| 国产一精品一AV一免费孕妇|