【JFreeChart】JFreeChart—输出区域图
生活随笔
收集整理的這篇文章主要介紹了
【JFreeChart】JFreeChart—输出区域图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
區域圖(Area Chart)與折線圖類似,但其強調數據之間的變化幅度,能夠直觀的現實變化的區域。
實現代碼:
AreaChartServlet.java
package com.lmb.jfreechart;import java.awt.Color; 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.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.CategoryLabelPositions; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.RectangleInsets;public class AreaChartServlet extends HttpServlet {private static final long serialVersionUID = 5852523271721922574L;public AreaChartServlet() {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 {// 設置返回類型為圖片response.setContentType("image/png");// 獲取數據集對象CategoryDataset dataset = createDataset();// 創建圖形對象JFreeChart jfreechart = ChartFactory.createAreaChart("08年圖書銷售量排名","按季度", "銷量", dataset, PlotOrientation.VERTICAL, true, true,false);// 獲得圖表區域對象CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();//設置前景色為50%透明categoryplot.setForegroundAlpha(0.5F);//設置X軸偏移量categoryplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));//設置北景色為淺灰色categoryplot.setBackgroundPaint(Color.lightGray);//設置顯示網格線categoryplot.setDomainGridlinesVisible(true);//設置網格線為白色categoryplot.setDomainGridlinePaint(Color.white);//設置顯示邊界線categoryplot.setRangeGridlinesVisible(true);//設置顯示邊界線為白色categoryplot.setRangeGridlinePaint(Color.white);//獲得X軸對象CategoryAxis categoryaxis = categoryplot.getDomainAxis();//設置X軸標簽位置為45度角categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);//設置與X軸的補白為0categoryaxis.setLowerMargin(0.0D);categoryaxis.setUpperMargin(0.0D);// 將圖表已數據流的方式返回給客戶端ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,500, 270);}/*** 返回數據集* * @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];// 模擬添加數據defaultdataset.addValue(DataUtils.getRandomData(), cat, category);}}return defaultdataset;}}web.xml略。。。
總結:
1、利用CategoryDataset數據集繪制區域圖;
2、對應創建區域圖的方法是createAreaChart();
3、利用CategoryAxis對象設置繪制區域的顯示方式;
超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的【JFreeChart】JFreeChart—输出区域图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JFreeChart】JFreeCha
- 下一篇: 【JFreeChart】JFreeCha