【JFreeChart】JFreeChart—输出折线图
生活随笔
收集整理的這篇文章主要介紹了
【JFreeChart】JFreeChart—输出折线图
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
實(shí)現(xiàn)代碼:
LineChartServlet.java
package com.lmb.jfreechart;import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.io.IOException; import java.util.Date;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.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.LineAndShapeRenderer; import org.jfree.chart.title.TextTitle; import org.jfree.data.category.CategoryDataset; import org.jfree.data.category.DefaultCategoryDataset; import org.jfree.ui.HorizontalAlignment; import org.jfree.ui.RectangleEdge;public class LineChartServlet extends HttpServlet {private static final long serialVersionUID = 1585397081043433662L;public LineChartServlet() {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");// 獲取數(shù)據(jù)集對象CategoryDataset dataset = createDataset();// 創(chuàng)建圖形對象JFreeChart jfreechart = ChartFactory.createLineChart("08年圖書銷售量",null, "銷售量", dataset, PlotOrientation.VERTICAL, false, true,false);// 設(shè)置圖表的子標(biāo)題jfreechart.addSubtitle(new TextTitle("按月份"));// 創(chuàng)建一個(gè)標(biāo)題TextTitle texttitle = new TextTitle("日期: " + new Date());// 設(shè)置標(biāo)題字體texttitle.setFont(new Font("黑體", 0, 10));// 設(shè)置標(biāo)題向下對齊texttitle.setPosition(RectangleEdge.BOTTOM);// 設(shè)置標(biāo)題向右對齊texttitle.setHorizontalAlignment(HorizontalAlignment.RIGHT);// 添加圖表的子標(biāo)題jfreechart.addSubtitle(texttitle);// 設(shè)置圖表的背景色為白色jfreechart.setBackgroundPaint(Color.white);// 獲得圖表區(qū)域?qū)ο?/span>CategoryPlot categoryplot = (CategoryPlot) jfreechart.getPlot();categoryplot.setBackgroundPaint(Color.lightGray);categoryplot.setRangeGridlinesVisible(false);// 獲顯示線條對象LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot.getRenderer();lineandshaperenderer.setBaseShapesVisible(true);lineandshaperenderer.setDrawOutlines(true);lineandshaperenderer.setUseFillPaint(true);lineandshaperenderer.setBaseFillPaint(Color.white);// 設(shè)置折線加粗lineandshaperenderer.setSeriesStroke(0, new BasicStroke(3F));lineandshaperenderer.setSeriesOutlineStroke(0, new BasicStroke(2.0F));// 設(shè)置折線拐點(diǎn)lineandshaperenderer.setSeriesShape(0,new java.awt.geom.Ellipse2D.Double(-5D, -5D, 10D, 10D));// 將圖表已數(shù)據(jù)流的方式返回給客戶端ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,500, 270);}/*** 返回?cái)?shù)據(jù)集* * @return*/private static CategoryDataset createDataset() {DefaultCategoryDataset defaultdataset = new DefaultCategoryDataset();for (int i = 1; i <= 12; i++) {defaultdataset.addValue(DataUtils.getRandomData(), "JAVA", i + "月");defaultdataset.addValue(DataUtils.getRandomData(), "PHP", i + "月");}return defaultdataset;}}web.xml略。。。
總結(jié):
1、利用CategoryGataSet數(shù)據(jù)集繪制折線圖;
2、對應(yīng)創(chuàng)建折線圖的方法是createLineChart();
3、通過TextTitle對象設(shè)置圖表的子標(biāo)題;
4、利用LineAndShapeRenderer線條對象,設(shè)置折線的顯示方式。
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的【JFreeChart】JFreeChart—输出折线图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Spring学习】IoC、DI、AOP
- 下一篇: 【JFreeChart】JFreeCha