JFreeChart插件使用
生活随笔
收集整理的這篇文章主要介紹了
JFreeChart插件使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
以java project為例,首先需要導入需要的jar包:jcommon-1.0.23.jar, jfreechart-1.0.19.jar.
畫餅狀圖示例:
package com.it.jfchart;import java.awt.Font;import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PiePlot; import org.jfree.chart.title.LegendTitle; import org.jfree.chart.title.TextTitle; import org.jfree.data.general.DefaultPieDataset; import org.jfree.ui.ApplicationFrame; import org.jfree.ui.RefineryUtilities; /*** jFreeChart畫餅狀圖* ApplicationFrame是JFreeChart中寫好的一個類,使用它就可用一個單獨的JFrame來顯示圖表*/ public class Mypie extends ApplicationFrame {// 字體設置private static final Font font = new Font("simsun",Font.ITALIC,22);public Mypie(String title) {super(title);setContentPane(new ChartPanel(getChart()));}/** 封裝畫圖所需的數據集對象DefaultPieDataset*/private static DefaultPieDataset getDataset(){DefaultPieDataset dataset = new DefaultPieDataset();dataset.setValue("本科生", 50);dataset.setValue("研究生", 30);dataset.setValue("博士生", 20);return dataset;}/** 返回JFreeChart對象* JFreeChart對中文支持不好, 所有涉及漢字的部分,必須重新設置字體,否則顯示亂碼*/public JFreeChart getChart(){final DefaultPieDataset dataset = getDataset();// 有標題,無懸浮提示,無連接(true,false,false)JFreeChart chart = ChartFactory.createPieChart("XX公司員工學歷比例圖", dataset,true,false,false);/** 重新設置字體*/// 重新設置標題字體chart.setTitle(new TextTitle("XX公司員工學歷比例圖",font));// 重新設置圖例字體LegendTitle legend = chart.getLegend();legend.setItemFont(font);// 重新設置統計表圖像字體PiePlot plot = (PiePlot) chart.getPlot();plot.setBackgroundAlpha(0.9f);plot.setLabelFont(font);return chart;}// 測試方法public static void main(String[] args){Mypie demo = new Mypie("XX公司員工學歷比例圖");demo.pack();RefineryUtilities.centerFrameOnScreen(demo);demo.setVisible(true);}}畫柱狀圖示例: package com.it.jfchart;import java.awt.Font;import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartPanel; import org.jfree.chart.JFreeChart; 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; import org.jfree.ui.RefineryUtilities; /*** JFreeChart畫柱狀圖*/ public class Mybar extends ApplicationFrame {// 字體設置private static final Font font = new Font("simsun",Font.ITALIC,22);public Mybar(String title) {super(title);setContentPane(new ChartPanel(getChart()));}/** 封裝柱狀圖所需的數據集對象DefaultCategoryDataset*/private static DefaultCategoryDataset getDataset(){DefaultCategoryDataset dataset = new DefaultCategoryDataset();dataset.setValue(50,"本科生","本科生");dataset.setValue(40,"研究生","研究生");dataset.setValue(30,"博士生","博士生");return dataset;}/** 返回JFreeChart對象* JFreeChart對中文支持不好, 所有涉及漢字的部分,必須重新設置字體,否則顯示亂碼*/public JFreeChart getChart(){final DefaultCategoryDataset dataset = getDataset();// 有標題,無懸浮提示,無連接(true,false,false)JFreeChart chart = ChartFactory.createBarChart3D("XX公司員工學歷比例圖", "學歷", "人數", dataset,PlotOrientation.VERTICAL,true,false,false);/** 重新設置字體*/// 重新設置標題字體chart.setTitle(new TextTitle("XX公司員工學歷比例圖",font));// 重新設置圖例字體LegendTitle legend = chart.getLegend();legend.setItemFont(font);// 設置X軸坐標上的文字的字體chart.getCategoryPlot().getDomainAxis().setTickLabelFont(font);// 設置X軸坐標標題的字體chart.getCategoryPlot().getDomainAxis().setLabelFont(font);// 設置Y軸坐標上的文字的字體chart.getCategoryPlot().getRangeAxis().setTickLabelFont(font);// 設置Y軸坐標標題的字體chart.getCategoryPlot().getRangeAxis().setLabelFont(font);return chart;}// 測試方法public static void main(String[] args){Mybar demo = new Mybar("XX公司員工學歷比例圖");demo.pack();RefineryUtilities.centerFrameOnScreen(demo);demo.setVisible(true);}}
以javaweb project為例,除了上述兩個jar包,還需要struts2-jfreechart-plugin-2.3.24.1.jar.
struts.xml 需要定義chart結果類型:
<struts><package name="default" namespace="/" extends="struts-default"><!-- 定義chart結果類型 --><result-types><result-type name="chart" class="org.apache.struts2.dispatcher.ChartResult"/> </result-types> ... result配置如下(餅狀圖): <!-- 客戶貢獻統計圖 --><action name="contriChart" class="statisreportAction" method="docontriChart"><result type="chart"><param name="chart">chart</param><param name="height">400</param><param name="width">700</param></result></action>具體的Action代碼如下: ??? // 必須加上getChart()方法public JFreeChart getChart() {return chart;} // 客戶貢獻統計圖public String docontriChart(){ordHistoryList = srBiz.orderHistoryList(); //獲取訂單數據DefaultPieDataset dataset = new DefaultPieDataset();// 給dataset賦值for (Orderhistory history : ordHistoryList) {dataset.setValue(history.getCustomerinfo().getCName(), history.getOTotalaccount());}// 實例化chartchart = ChartFactory.createPieChart("客戶貢獻統計圖", dataset, true, false, false);// 設置字體chart.setTitle(new TextTitle("客戶貢獻統計圖",font));LegendTitle legend = chart.getLegend();legend.setItemFont(font);PiePlot plot = (PiePlot) chart.getPlot();plot.setBackgroundAlpha(0.9f);plot.setLabelFont(font);return SUCCESS;}
JSP頁面顯示(通過click事件來顯示統計圖): <%--圖片src中寫入action名字,執行生成統計圖操作 --%> <div><img id="chart" alt="" src="contriChart" style="display:none; "></div>
js函數: <script type="text/javascript"> // 顯示統計圖 function showChart(){var imgId=document.getElementById("chart");if(imgId.style.display=="block"){imgId.style.display="none";}else{imgId.style.display="block";} }
轉載于:https://www.cnblogs.com/archermeng/p/7537388.html
總結
以上是生活随笔為你收集整理的JFreeChart插件使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 长连接个数限制
- 下一篇: libevent evhttp学习——h