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