二十五、爬取毛豆新車的數據
706
2025-04-01
Struts2
學習筆記
18
:
JFreeChart
第二十一,二十二講
學習內容:
1.
兩個簡單的JFreeChart實例
2.
將JFreeChart生成的圖片保存到本地磁盤上
3.
在頁面上顯示JFreeChart圖片
首要工作:
導入相關包(從課件中導入,在網上下載的最新版本的JFreeChart顯示中文的時候出現亂碼)
jcommon-1.0.12.jar?,?jfreechart-1.0.9.jar
詳細內容:
1.
制作一個餅圖
,將其中一些方法的參數信息當作注釋,顯示出來,但是在真正的編寫代碼時候,主要是參考API文檔
package?test;import?java.awt.Font;import?org.jfree.chart.ChartFactory;import?org.jfree.chart.ChartFrame;import?org.jfree.chart.JFreeChart;import?org.jfree.chart.plot.PiePlot;import?org.jfree.data.general.DefaultPieDataset;public?class?TestJFreeChart1?{public?static?void?main(String[]?args)?{//先為餅圖準本數據 DefaultPieDataset?dpd?=?new?DefaultPieDataset();dpd.setValue(?"管理人員"?,?30?);dpd.setValue(?"開發人員"?,?50?);dpd.setValue(?"銷售人員"?,?42?);dpd.setValue(?"策劃人員"?,?15?);?//創建圖表 //createPieChart(java.lang.String?title,?PieDataset?dataset,?boolean?legend,?boolean?tooltips,?boolean?urls)? JFreeChart?chart?=?ChartFactory.createPieChart(?"公司人員分布圖"?,?dpd?,?true?,?true?,?true?);//獲取plot PiePlot?plot?=?(PiePlot)chart.getPlot();//設置plot的字體類型,即"管理人員","開發人員","銷售人員","策劃人員"的字體類型 //plot.setLabelFont(java.awt.Font?font)? //public?Font(String?name,?int?style,?int?size) plot.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//ChartFrame(java.lang.String?title,?JFreeChart?chart)? ChartFrame?cf?=?new?ChartFrame(?"某公司人員分布圖"?,?chart?);????????添加代碼處cf.pack();cf.setVisible(?true?);}}
運行效果如圖所示:
2.
制作一個柱形圖
package?test;import?java.awt.Font;import?javax.swing.JPanel;import?org.jfree.chart.ChartFactory;import?org.jfree.chart.ChartPanel;import?org.jfree.chart.JFreeChart;import?org.jfree.chart.axis.CategoryAxis;import?org.jfree.chart.axis.ValueAxis;import?org.jfree.chart.plot.CategoryPlot;import?org.jfree.chart.plot.PlotOrientation;import?org.jfree.chart.title.LegendTitle;import?org.jfree.chart.title.TextTitle;import?org.jfree.data.category.DefaultCategoryDataset;import?org.jfree.ui.ApplicationFrame;public?class?TestJFreeChart2_1?extends?ApplicationFrame{private?static?final?long?serialVersionUID?=?-3361537106012344957L;public?TestJFreeChart2_1?(?String?title){super(title);this.setContentPane(createPanel());}public?static?DefaultCategoryDataset?createCategory()?{DefaultCategoryDataset?dcd?=?new?DefaultCategoryDataset();dcd.setValue(10,?"aa",?"管理人員");dcd.setValue(25,?"bb",?"銷售人員");dcd.setValue(38,?"cc",?"開發人員");dcd.setValue(40,?"dd",?"策劃人員");return?dcd;}public?static?JFreeChart?createChart(DefaultCategoryDataset?dcd)?{JFreeChart?chart?=?ChartFactory.createBarChart3D("公司人員分布圖",?"人員分布","人員數量",?dcd,?PlotOrientation.VERTICAL,?true,?false,?false);//設置chart的主題字體 chart.setTitle(new?TextTitle("某公司人員分布圖",?new?Font("隸書",?Font.BOLD,?32)));CategoryPlot?plot?=?(CategoryPlot)?chart.getPlot();//設置橫軸的字體 CategoryAxis?cateAxis?=?plot.getDomainAxis();cateAxis.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//設置縱軸的字體 ValueAxis?valueAxis=?plot.getRangeAxis();valueAxis.setLabelFont(new?Font("隸書",?Font.BOLD?+?Font.ITALIC,?14));//說明部分的字體,對應于"aa","bb","cc","dd"的字體 LegendTitle?legend?=?chart.getLegend();legend.setItemFont(new?Font("宋體",?Font.BOLD?+?Font.ITALIC,?14));return?chart;}public?static?JPanel?createPanel(){JFreeChart?chart?=?createChart(createCategory());return?new?ChartPanel(chart);}public?static?void?main(String[]?args)?{TestJFreeChart2_1?chart?=?new?TestJFreeChart2_1("某公司");chart.pack();chart.setVisible(?true?);}}
運行效果:
3.
保存JFreeChart生成的圖片到本地磁盤
在第一部分中紅色標記出添加代碼:
//保存為JPEG格式的圖片 //?OutputStream?os1?=?new?FileOutputStream("abcd.jpeg"); //?ChartUtilities.writeChartAsJPEG(os1?,?chart?,?800?,?600?); //保存為PNG格式的圖片 OutputStream?os2?=?new?FileOutputStream("abcd.png");ChartUtilities.writeChartAsPNG(?os2?,?chart?,?800?,?600?);
注:
保存成JPEG格式的圖片被渲染上了一層橙色,PNG格式的圖片沒有被渲染
4.
在網頁上顯示JFreeChart生成的圖片
1.
導入相關的包
2.
修改web.xml文件,添加如下代碼:(該代碼可以從API文檔中獲取)
3.
新建jfreechart.jsp頁面寫入一下代碼:
<%@?page?language="java"?contentType="text/html;?charset=GB18030"pageEncoding="GB18030"%><%@?page?import="org.jfree.data.general.DefaultPieDataset"%><%@?page?import="org.jfree.chart.JFreeChart"%><%@?page?import="org.jfree.chart.ChartFactory"%><%@?page?import="org.jfree.chart.plot.PiePlot"%><%@?page?import="java.awt.Font"%><%@page?import="org.jfree.chart.servlet.ServletUtilities;"%>
//注:我裝的IE?7.0?不支持?JPEG格式的圖片,支持PNG格式的圖片
//但是?火狐瀏覽器支持JPEG與PNG格式的圖片
Struts
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。