1,直方圖生成源代碼:
/**?
*?產量直方圖?
*?@版本?1.0?
*?@自從?
*/
@SuppressWarnings("serial ")
公共?班級?PillarServlet?延伸?HttpServlet?{
@覆蓋
受保護?作廢?服務(HttpServletRequest?請求,
HttpServletResponse?回應)?摔投?ServletException,?IOException?{
response . setcontenttype(" text/html ");
//?使用普通的數據集
DefaultCategoryDataset?圖表日期?=?新的?DefaultCategoryDataset();
//?添加測試數據,第壹個參數是訪問次數,最後壹個參數是時間,中間的參數是顯示是否使用。
chartDate.addValue(55,“交通”“2010-01”);
chartDate.addValue(65,“交通”“2010-02”);
chartDate.addValue(59,“交通”“2010-03”);
chartDate.addValue(156,?“交通”“2010-04”);
chartDate.addValue(452,“交通”“2010-05”);
chartDate.addValue(359,“交通”“2010-06”);
試試?{
//?從數據庫中獲取數據集
DefaultCategoryDataset?數據?=?圖表日期;
//?使用ChartFactory創建3D直方圖,不使用3D,直接使用createBarChart。
JFreeChart?圖表?=?ChartFactory.createBarChart3D(
“網站月訪問量統計”?//?海圖標題
《時代》?//?顯示目錄軸的標簽
“流量”//?數值軸的顯示標簽
數據,?//?數據集
繪圖方向。垂直,?//?圖表方向,這裏是垂直方向。
//?繪圖方向。水平,?//圖表方向,這裏是水平方向。
真的嗎?//?是否顯示圖例
真的嗎?//?是否生成工具?
假的?//?生成URL鏈接?
);
//?設置整個圖片的背景顏色。
chart.setBackgroundPaint(Color。粉色);
//?將圖片設置為有邊框
chart . setbordervisible(true);
字體?kfont?=?新的?字體("宋體",字體。平平淡淡?12);//?底部
字體?titleFont?=?新的?字體("宋體",字體。大膽,?25);?//?圖片標題
//?圖片標題
chart.setTitle(新?TextTitle(chart.getTitle()。getText(),?title font));
//?底部
chart.getLegend()。setitem font(kfont);
//?獲取坐標設置字體解決亂碼。
CategoryPlot?categoryplot?=?(CategoryPlot)?chart . get plot();
category plot . setdomaingridlines visible(true);
category plot . setrangecrosshirvisible(true);
category plot . setrangecrosshirpaint(color . blue);
數字軸?數字軸?=?(數字軸)?category plot . getrangeaxis();
number axis . setstandardtickunits(number axis . createintegertickinunits());
BarRenderer?barrenderer?=?(BarRenderer)?category plot . get renderer();
barrenderer.setBaseItemLabelFont(新?字體("宋體",字體。平平淡淡?12));
barrender . setseriestemlabelfont(1,?新的?字體("宋體",字體。平平淡淡?12));
類別交叉?域名軸?=?category plot . getdomainaxis();?
/* -設置X軸坐標上的文本。
domainAxis.setTickLabelFont(新?字體(" sans-serif ",字體。平平淡淡?11));
/* -設置X軸的標題文本。
domainAxis.setLabelFont(新?字體("宋體",字體。平平淡淡?12));
/* -在Y軸的坐標上設置文本。
numberaxis.setTickLabelFont(新?字體(" sans-serif ",字體。平平淡淡?12));
/* -設置Y軸的標題文本。
numberaxis.setLabelFont(新?字體("宋體",字體。平平淡淡?12));
/* -這個代碼解決了底部漢字亂碼的問題。
chart.getLegend()。setItemFont(新?字體("宋體",字體。平平淡淡?12));
//?生成圖片並輸出
chart utilities . writechartasjpeg(response . get output stream(),?1.0f,
圖表,?500,?300,?null);
}?接住?(例外?e)?{
e . printstacktrace();
}
}
} ?
2、生成餅圖:
/**?
*?生成餅圖?
*?@版本?1.0?
*?@自從?
*/
@SuppressWarnings("serial ")
公共?班級?CakeServlet?延伸?HttpServlet?{
受保護?作廢?服務(HttpServletRequest?請求,
HttpServletResponse?回應)?摔投?ServletException,?IOException?{
response . setcontenttype(" text/html ");
//?默認數據類型
DefaultPieDataset?數據類型?=?新的?DefaultPieDataset();
//?數據參數?內容、數量
dataType.setValue("IE6 ",156);
dataType.setValue("IE7 ",230);
dataType.setValue("IE8 ",45);
DataType.setValue ("Firefox ",640);
DataType.setValue ("Google ",245);
試試?{
DefaultPieDataset?數據?=?數據類型;
//?生成壹個普通的餅狀圖,去掉?3D?就這麽幹吧
//?制作三維餅圖
PiePlot3D?劇情?=?新的?PiePlot3D(數據);
JFreeChart?圖表?=?新的?JFreeChart(
“用戶使用的瀏覽器類型”。//?圖形標題
JFreeChart。DEFAULT_TITLE_FONT,//?標題字體
劇情,//?圖標標題對象
真的嗎?//?是否顯示圖例
);
//?設置整個圖片的背景顏色。
chart.setBackgroundPaint(Color。粉色);
//?將圖片設置為有邊框
chart . setbordervisible(true);
//?配置字體
字體?kfont?=?新的?字體("宋體",字體。平平淡淡?12);//?底部
字體?titleFont?=?新的?字體("宋體",字體。大膽,?25);?//?圖片標題
//?圖片標題
chart.setTitle(新?TextTitle(chart.getTitle()。getText(),?title font));
//?底部
chart.getLegend()。setitem font(kfont);
chart utilities . writechartasjpeg(response . get output stream(),?1.0f,
圖表,?500,?300,?null);
}?接住?(例外?e)?{
e . printstacktrace();
}
}
} ?
3、柱狀分布統計:
/**?
*?列分布統計圖?
*?@版本?1.0?
*?@自從?
*/
@SuppressWarnings("serial ")
公共?班級?ParagraphsServlet?延伸?HttpServlet?{
受保護?作廢?服務(HttpServletRequest?請求,
HttpServletResponse?回應)?摔投?ServletException,?IOException?{
response . setcontenttype(" text/html ");
DefaultCategoryDataset?數據時間?=?新的?DefaultCategoryDataset();
//?這是壹組數據。
dataTime.addValue(52,"0-6",?"2010-1-1");
dataTime.addValue(86,"6-12",?"2010-1-1");
dataTime.addValue(126,?"12-18",?"2010-1-1");
dataTime.addValue(42,"18-24",?"2010-1-1");
//?這是壹組數據。
dataTime.addValue(452,"0-6",?"2010-1-2");
dataTime.addValue(96,"6-12",?"2010-1-2");
dataTime.addValue(254,"12-18",?"2010-1-2");
dataTime.addValue(126,?"18-24",?"2010-1-2");
//?這是壹組數據。
dataTime.addValue(256,"0-6",?"2010-1-3");
dataTime.addValue(86,"6-12",?"2010-1-3");
dataTime.addValue(365,"12-18",?"2010-1-3");
dataTime.addValue(24,"18-24",?"2010-1-3");
試試?{
DefaultCategoryDataset?數據?=?dataTime
//?使用ChartFactory創建3D直方圖,不使用3D,直接使用createBarChart。
JFreeChart?圖表?=?ChartFactory.createBarChart3D(
“網站時間段流量統計”,?
《時代》?
“交通”
數據,
繪圖方向。垂直,?
真的嗎?
假的,?
錯誤的
);
//?設置整個圖片的背景顏色。
chart.setBackgroundPaint(Color。粉色);
//?將圖片設置為有邊框
chart . setbordervisible(true);
字體?kfont?=?新的?字體("宋體",字體。平平淡淡?12);//?底部
字體?titleFont?=?新的?字體("宋體",字體。大膽,?25);?//?圖片標題
//?圖片標題
chart.setTitle(新?TextTitle(chart.getTitle()。getText(),?title font));
//?底部
chart.getLegend()。setitem font(kfont);
//?獲取坐標設置字體解決亂碼。
CategoryPlot?categoryplot?=?(CategoryPlot)?chart . get plot();
category plot . setdomaingridlines visible(true);
category plot . setrangecrosshirvisible(true);
category plot . setrangecrosshirpaint(color . blue);
數字軸?數字軸?=?(數字軸)?category plot . getrangeaxis();
number axis . setstandardtickunits(number axis . createintegertickinunits());
BarRenderer?barrenderer?=?(BarRenderer)?category plot . get renderer();
barrenderer.setBaseItemLabelFont(新?字體("宋體",字體。平平淡淡?12));
barrender . setseriestemlabelfont(1,?新的?字體("宋體",字體。平平淡淡?12));
CategoryAxis?域名軸?=?category plot . getdomainaxis();?
/* -設置X軸坐標上的文本。
domainAxis.setTickLabelFont(新?字體(" sans-serif ",字體。平平淡淡?11));
/* -設置X軸的標題文本。
domainAxis.setLabelFont(新?字體("宋體",字體。平平淡淡?12));
/* -在Y軸的坐標上設置文本。
numberaxis.setTickLabelFont(新?字體(" sans-serif ",字體。平平淡淡?12));
/* -設置Y軸的標題文本。
numberaxis.setLabelFont(新?字體("宋體",字體。平平淡淡?12));
/* -這個代碼解決了底部漢字亂碼的問題。
chart.getLegend()。setItemFont(新?字體("宋體",字體。平平淡淡?12));
chart utilities . writechartasjpeg(response . get output stream(),?1.0f,
圖表,?500,?300,?null);
}?接住?(例外?es)?{
es . printstacktrace();
}
}
} ?