JFreeChart(八)之时序图
转载自 JFreeChart时序图
时序图表显示的数据点在相等的时间间隔序列变化。本章演示了如何从一个给定的业务数据使用JFreeChart,建立时序图。
业务数据
让我们考虑通过使用标准 Java API 的 Math.random()产生的各种随机数。我们使用这些数字产生一个时间序列图。可以生成用于发生错误的总数在自己的网站给定的时间间隔类似的图表。
基于AWT的应用
下面是创建由Math.random()产生的数字时间的代码在给定时间内的序列图。
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.SeriesException;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;public class TimeSeries_AWT extends ApplicationFrame
{public TimeSeries_AWT( final String title ){super( title ); final XYDataset dataset = createDataset( ); final JFreeChart chart = createChart( dataset ); final ChartPanel chartPanel = new ChartPanel( chart ); chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 370 ) ); chartPanel.setMouseZoomable( true , false ); setContentPane( chartPanel );}private XYDataset createDataset( ) {final TimeSeries series = new TimeSeries( "Random Data" ); Second current = new Second( ); double value = 100.0; for (int i = 0; i < 4000; i++) {try {value = value + Math.random( ) - 0.5; series.add(current, new Double( value ) ); current = ( Second ) current.next( ); }catch ( SeriesException e ) {System.err.println("Error adding to series");}}return new TimeSeriesCollection(series);} private JFreeChart createChart( final XYDataset dataset ) {return ChartFactory.createTimeSeriesChart( "Computing Test", "Seconds", "Value", dataset, false, false, false);}public static void main( final String[ ] args ){final String title = "Time Series Management"; final TimeSeries_AWT demo = new TimeSeries_AWT( title ); demo.pack( ); RefineryUtilities.positionFrameRandomly( demo ); demo.setVisible( true );}
}
保存上面的Java代码在TimeSeries_AWT.java文件,然后从命令提示符下编译并运行它,如下所示:
$javac TimeSeries_AWT.java $java TImeSeries_AWT
如果一切顺利,它会编译并运行生成以下时序图:
创建JPEG图像
让我们重新编写上面的例子,在命令行生成JPEG图像。
import java.io.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.SeriesException;
import org.jfree.data.time.Second;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.chart.ChartUtilities;public class TimeSeriesChart
{public static void main( final String[ ] args )throws Exception{final TimeSeries series = new TimeSeries( "Random Data" );Second current = new Second();double value = 100.0;for ( int i = 0 ; i < 4000 ; i++ ){try{value = value + Math.random( ) - 0.5;series.add( current , new Double( value ) );current = ( Second ) current.next( );}catch ( SeriesException e ) {System.err.println( "Error adding to series" );}}final XYDataset dataset=( XYDataset )new TimeSeriesCollection(series);JFreeChart timechart = ChartFactory.createTimeSeriesChart("Computing Test", "Seconds", "Value", dataset,false, false, false);int width = 560; /* Width of the image */int height = 370; /* Height of the image */ File timeChart = new File( "TimeChart.jpeg" ); ChartUtilities.saveChartAsJPEG( timeChart, timechart, width, height );}
}
继续上面的Java代码保存在TimeSeriesChart.java文件中,然后从命令提示符下编译并运行它,如下所示:
$javac TimeSeriesChart.java $java TimeSeriesChart
如果一切正常,它会编译并运行在当前的目录中创建JPEG图像文件TimeChart.jpeg文件。
JFreeChart(八)之时序图相关推荐
- 【JFreeChart】JFreeChart—输出时序图
时序图(Time Series Chart)是按照时间轴显示的图形.通常可以按照年.月.日等时间周来显示. 实现代码: TimeChartServlet.java package com.lmb.jf ...
- jfreechart的时序图(曲线图)运行时间长了就变的很卡
这几天项目里要用到一些图表,于是采用jfreechart来做这些时序图之类的东西.一切都很顺利,直到我忘了关程序去吃饭然后回来一看电脑卡得不行了,这才发现程序随着运行时间会占用越来越多的电脑资源.开始 ...
- Java通过JfreeChart生成转Base64图片字符串(饼图、折线图、柱状图、折线图-多条、3D柱状图、气泡图、时序图、曲线图、区域图、分布图、联合分类图、双X轴图、K线图、柱状图-横向等图)
工具类 CreatLineChart.java package DrawLine;import java.awt.BasicStroke; import java.awt.Color; import ...
- html edge浏览器 图片,浏览器时序图及 Microsoft Edge 构架
本文又是我的作业,完成思路借鉴了 版权说明. 作业要求针对一款典型浏览器,绘制浏览器处理时序图对用户界面进行操作(如拖拽窗口) 带有 JavaScript 脚本 HTML 文档 查阅资料,绘制 Edg ...
- 捣鼓PlantUML(三、时序图)
简单介绍 时序图(Sequence Diagram),又名序列图.循序图.顺序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作.它可以表示用例的行为顺序,当执行一 ...
- I2C协议---I2C时序图解析
一.I2C协议简介 I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART.CAN 等通讯 ...
- uml画时序图操作步骤
本人使用的是staruml工具,下载地址:https://share.weiyun.com/5HtcSvV 在日常工作中,不管是需求分析.流程设计.源码解读,通过uml工具画时序图都是一个很有效的辅助 ...
- java折线图_Java系列:JFreeChart在线制作折线图
一.概述: JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计.JFr ...
- 使用Typora画 流程图、时序图、顺序图、甘特图、等图详解
目录 概述 一.流程图 二.UML时序图 三.甘特图 四.类图 五.状态图 六.饼图 七.导出 八.总结 概述 Typora是一款轻便简洁的Markdown编辑器,支持即时渲染技术,这也是与其他Mar ...
最新文章
- const与define相比优点_const与#define的区别、优点
- 中科院在2017年高被引科学家遴选中表现优异
- 卡巴斯基:远程工具Ammyy Admin被用来盗取银行账户
- Shiro集成Web时的Shiro JSP标签
- 百度Google搜索框中,你不知道的变化
- c语言case可以判断多个条件吗,case 多个条件
- 几个预编译指令的用法
- java 工厂模式的写法_java简单工厂模式是什么
- 虚拟机挂载新虚拟硬盘步骤
- 大学计算机基础题库百度云资源,《大学计算机基础试题题库及答案》.pdf
- 小程序 tabBar菜单
- 计算机桌面保护时间的调整显示,电脑屏幕显示时间设置_电脑屏幕的显示时间...
- T32 dump 连续寄存器
- 【每晚一个恐怖的测开技术学习小故事】第三集:无限噩梦算法
- Android 音乐裁剪器
- EXCEL公式引用得是空的单元格,但是却不返回空““,而是返回0是怎么回事? 怎么处理呢?
- -- 21、查询不同老师所教不同课程平均分从高到低显示
- PPP中的pap和chap认证
- OpenMV 线性回归巡线之一:赛道提取
- Arduino + 74HC595实现24x24点阵贪吃蛇游戏
热门文章
- org.apache.ibatis.executor.ExecutorException: A query was run and no Result Maps were found for the
- [Redis6]常用数据类型_Zset有序集合
- 深圳本次核酸检普筛怎么将个人信息和结果对应上??
- 网络编程-网络分层的意义
- CF623E Transforming Sequence(多项式/倍增fft/动态规划)
- hdu 1521 排列组合 多重集排列 + 指数生成函数
- AGC005D - ~K Perm Counting(组合数学,背包,dp)
- Codeforces Round #737 (Div. 2)
- 牛客题霸 车站建造问题 C++题解/答案
- 【每日一题】7月1日题目精讲 借教室