【JFreeChart】JFreeChart—输出组合图表
生活随笔
收集整理的這篇文章主要介紹了
【JFreeChart】JFreeChart—输出组合图表
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
組合圖表(Combined Chart)可以組合不同的圖形,例如柱狀圖和折線圖等,通常顯示股票的圖,比如上方式股票價格,下方是成交量。
實現(xiàn)代碼:
CombinedChartServlet.java
package com.lmb.jfreechart;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.labels.StandardCategoryToolTipGenerator; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.CombinedDomainCategoryPlot; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset;public class CombinedChartServlet extends HttpServlet {private static final long serialVersionUID = -566713680648708515L;public CombinedChartServlet() {super();}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 設(shè)置返回類型為圖片response.setContentType("image/png");// 創(chuàng)建第一個數(shù)據(jù)集CategoryDataset categorydataset = createDataset();NumberAxis numberaxis = new NumberAxis("銷量");numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();CategoryPlot categoryplot = new CategoryPlot(categorydataset, null,numberaxis, lineandshaperenderer);categoryplot.setDomainGridlinesVisible(true);// 創(chuàng)建第二個數(shù)據(jù)集CategoryDataset categorydataset1 = createDataset();NumberAxis numberaxis1 = new NumberAxis("銷量");BarRenderer barrenderer = new BarRenderer();barrenderer.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());CategoryPlot categoryplot1 = new CategoryPlot(categorydataset1, null,numberaxis1, barrenderer);categoryplot1.setDomainGridlinesVisible(true);// 創(chuàng)建組合數(shù)據(jù)集CategoryAxis categoryaxis = new CategoryAxis();CombinedDomainCategoryPlot combineddomaincategoryplot = new CombinedDomainCategoryPlot(categoryaxis);combineddomaincategoryplot.add(categoryplot, 2);combineddomaincategoryplot.add(categoryplot1, 1);// 創(chuàng)建圖表對象JFreeChart jfreechart = new JFreeChart("組合圖", null,combineddomaincategoryplot, true);// 將圖表已數(shù)據(jù)流的方式返回給客戶端ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,500, 270);}/*** 返回數(shù)據(jù)集* * @return*/private static CategoryDataset createDataset() {// 時間維度String[] category1 = { "第一季度", "第二季度", "第三季度", "第四季度" };// 分類維度String[] category2 = { "JAVA", "C/C++", "PHP" };DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();for (int i = 0; i < category1.length; i++) {String category = category1[i];for (int j = 0; j < category2.length; j++) {String cat = category2[j];// 模擬添加數(shù)據(jù)defaultdataset.addValue(DataUtils.getRandomData(), cat,category);}}return defaultdataset;}}web.xml略。。。
總結(jié):
1、組合圖的數(shù)據(jù)集主要有兩個以上的數(shù)據(jù)集組成,通過CombinedDomainCategoryPlot對象的add()方法,將不同的數(shù)據(jù)集裝載;
2、創(chuàng)建組合圖使用JFreeChart對象的構(gòu)造方法創(chuàng)建。
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的【JFreeChart】JFreeChart—输出组合图表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JFreeChart】JFreeCha
- 下一篇: 【JFreeChart】JFreeCha