<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久久精品日本一区二区免费| 国产乱弄免费视频| 中文字幕亚洲综合久久综合| 黄色永久免费网站| 亚洲乱码在线观看| 国产女高清在线看免费观看| 亚洲国产欧洲综合997久久| 国产美女无遮挡免费视频网站 | 2019中文字幕免费电影在线播放| 亚洲成Av人片乱码色午夜| 日本免费人成网ww555在线| 亚洲av女电影网| 18禁成人网站免费观看| 亚洲中文字幕在线无码一区二区| 99热在线精品免费全部my| 亚洲乱码av中文一区二区| 国产成人在线免费观看| 亚洲一区二区三区免费| 亚洲大片在线观看| 男人的好免费观看在线视频| 亚洲AV日韩综合一区| 精品亚洲一区二区三区在线观看 | 拍拍拍无挡免费视频网站| 亚洲AV日韩精品久久久久| 人与禽交免费网站视频| 亚洲AV无码专区在线观看成人| www.亚洲精品| 国产精品区免费视频| 亚洲中文字幕日本无线码| 亚洲av无码天堂一区二区三区| 国产午夜精品久久久久免费视| 亚洲一区二区三区在线网站| 亚洲国产综合精品一区在线播放| 免费福利在线视频| 亚洲色欲啪啪久久WWW综合网| 国产亚洲av人片在线观看| 国产91免费视频| 国产免费黄色无码视频| 国产成人精品日本亚洲18图 | 亚洲午夜未满十八勿入|