【JFreeChart】JFreeChart—输出时序图
生活随笔
收集整理的這篇文章主要介紹了
【JFreeChart】JFreeChart—输出时序图
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
時(shí)序圖(Time Series Chart)是按照時(shí)間軸顯示的圖形。通常可以按照年、月、日等時(shí)間周來(lái)顯示。
實(shí)現(xiàn)代碼:
TimeChartServlet.java
package com.lmb.jfreechart;import java.awt.BasicStroke; 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.plot.XYPlot; import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.data.general.SeriesException; import org.jfree.data.time.Day; import org.jfree.data.time.TimeSeries; import org.jfree.data.time.TimeSeriesCollection; import org.jfree.data.xy.XYDataset;public class TimeChartServlet extends HttpServlet {private static final long serialVersionUID = -2380167170122284327L;public TimeChartServlet() {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è)置返回類(lèi)型為圖片response.setContentType("image/png");// 獲取數(shù)據(jù)集對(duì)象XYDataset dataset = createDataset();// 創(chuàng)建圖形對(duì)象JFreeChart jfreechart = ChartFactory.createTimeSeriesChart("時(shí)序圖","POLO歷史價(jià)格", "價(jià)格", dataset, false, false, false);XYPlot xyplot = (XYPlot) jfreechart.getPlot();//獲得折線顯示對(duì)象XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer();//設(shè)置不顯示折線xylineandshaperenderer.setBaseShapesVisible(false);//設(shè)置折線的粗細(xì)xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(0.5F, 1, 1, 5F, new float[] { 5F, 10F }, 0.0F));xyplot.setRenderer(xylineandshaperenderer);// 將圖表已數(shù)據(jù)流的方式返回給客戶端ChartUtilities.writeChartAsPNG(response.getOutputStream(), jfreechart,500, 270);}/*** 返回?cái)?shù)據(jù)集* * @return*/private static XYDataset createDataset() {//創(chuàng)建時(shí)序?qū)ο?/span>TimeSeries timeseries = new TimeSeries("JAVA");//初始化日期為1990年1月1日Day day = new Day(1, 1, 1990);double d = 100000D;//添加1000條數(shù)據(jù)for (int i = 0; i < 4000; i++)try {//隨機(jī)取出100附近數(shù)d = (d + Math.random()) - 0.5D;//添加到時(shí)序?qū)ο?/span>timeseries.add(day, new Double(d));//之后的一天day = (Day) day.next();} catch (SeriesException seriesexception) {}//返回XYDataset數(shù)據(jù)集return new TimeSeriesCollection(timeseries);} }web.xml略。。。
總結(jié):
1、利用XYDataset數(shù)據(jù)集繪制時(shí)序圖,時(shí)序圖的數(shù)據(jù)集可以通過(guò)TimeSeries對(duì)象設(shè)置;
2、對(duì)應(yīng)創(chuàng)建時(shí)序圖的方法是createTimeSeriesChart();
3、利用XYLineAndShapeRenderer對(duì)象設(shè)置繪制線條的顯示方式。
總結(jié)
以上是生活随笔為你收集整理的【JFreeChart】JFreeChart—输出时序图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【JFreeChart】JFreeCha
- 下一篇: 【JFreeChart】JFreeCha