<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 午后星期午 閱讀(113) 評論(0)  編輯  收藏 所屬分類: JavaEE

    主站蜘蛛池模板: 国产大片线上免费观看| 182tv免费视视频线路一二三| 久久夜色精品国产亚洲av| 你懂的免费在线观看网站| 一本色道久久88—综合亚洲精品 | 日本免费无遮挡吸乳视频电影| 免费看一级高潮毛片| 亚洲视频在线观看免费| 四虎影视免费在线| a级成人毛片免费视频高清| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲无线一二三四区手机| 台湾一级毛片永久免费| 不卡视频免费在线观看| 亚洲熟女精品中文字幕| 亚洲va无码专区国产乱码| 国产美女精品久久久久久久免费| 中文字幕av免费专区| 亚洲熟妇av午夜无码不卡| 亚洲国产精品国自产电影| www.亚洲色图| 国产精品久久久久免费a∨| 三年片免费观看大全国语| 亚洲国产精品日韩av不卡在线| 久久精品亚洲中文字幕无码网站| 在线观看免费亚洲| 最近中文字幕国语免费完整| 一区二区三区免费视频观看| 亚洲偷偷自拍高清| 亚洲第一成年男人的天堂| 亚洲免费在线观看| 午夜成人免费视频| 在线看片v免费观看视频777| 免费国产污网站在线观看| 老司机免费午夜精品视频| 亚洲 欧洲 视频 伦小说| 亚洲视频2020| 亚洲国产精品国自产拍电影| 久久久久久久综合日本亚洲| 亚洲国产婷婷综合在线精品 | 亚洲尹人香蕉网在线视颅|