1. 程式人生 > >JFreeChat四種圖表的繪製例程

JFreeChat四種圖表的繪製例程

{
        request.setCharacterEncoding(
"UTF-8");

        
// 曲線圖標題
        String title ="趨勢分析";
        
// 曲線圖X軸提示
        String domain ="年份";
        
// 曲線圖Y軸提示
        String range ="GDP";

        
// 建立時間資料來源,每一個TimeSeries在圖上是一條曲線
        TimeSeries chinaTs =new TimeSeries("中國");
        Map
<Integer, Integer>
 chinaht =new LinkedHashMap<Integer, Integer>();
        chinaht.put(
200222100);
        chinaht.put(
200314100);
        chinaht.put(
200427100);
        chinaht.put(
200538100);
        chinaht.put(
200629000);
        chinaht.put(
200790100);
        
        
for (Integer i:chinaht.keySet()) {
            chinaTs.add(
new TimeSeriesDataItem(new Day(11, i),new Double(chinaht.get(i))));            
        }


        
// 建立時間資料來源,每一個TimeSeries在圖上是一條曲線
        TimeSeries japanTs =new TimeSeries("日本");
        Map
<Integer, Integer> japanht =new LinkedHashMap<Integer, Integer>();
        japanht.put(
200043900);
        japanht.put(
200363500);
        japanht.put(
200443400);
        japanht.put(
200563200);
        japanht.put(
200653100);
        japanht.put(
200732900);
        
        
for (Integer i:japanht.keySet()) {
            japanTs.add(
new TimeSeriesDataItem(new Day(11, i),new Double(japanht.get(i))));            
        }


        
// 建立時間資料來源,每一個TimeSeries在圖上是一條曲線
        TimeSeries usaTs =new TimeSeries("美國");
        Map
<Integer, Integer> usaht =new LinkedHashMap<Integer, Integer>();
        usaht.put(
2001100000);
        usaht.put(
2003159800);
        usaht.put(
2004109700);
        usaht.put(
2005129600);
        usaht.put(
20069800);
        usaht.put(
2007149800);
        
        
for (Integer i:usaht.keySet()) {
            usaTs.add(
new TimeSeriesDataItem(new Day(11, i),new Double(usaht.get(i))));            
        }

        
        
// 時間曲線資料集合
        TimeSeriesCollection dataset =new TimeSeriesCollection();
        dataset.addSeries(chinaTs);
        dataset.addSeries(japanTs);
        dataset.addSeries(usaTs);

        
// 時間曲線元素
        JFreeChart chart = ChartFactory.createTimeSeriesChart(title, domain,
                range, dataset, 
truetruefalse);

        
// 建立檔案並將圖片地址傳遞到頁面
        String filename = ServletUtilities.saveChartAsPNG(chart, 500300,
                
null, request.getSession());
        String graphURL 
= request.getContextPath() +"/displayChart?filename="
                
+ filename;
        request.setAttribute(
"graphURL", graphURL);

        
// 標識
        request.setAttribute("msg""折線圖效果");

        
// 頁面轉向
        RequestDispatcher dispatcher = request
                .getRequestDispatcher(
"/web/page/chart.jsp");
        dispatcher.forward(request, response);
        
return;
    }