最近要用到实时曲线图,在网上大概找了一下,有两种实现方式,一种就是JFreeChart的官方实例MemoryUsageDemo.java.通过一个实现java.Swing.Timer的内部类,在其监听器中将实时数据添加进TimeSeries,由于Timer是会实时执行的,所以这个方法倒是没有什么问题,可以参考代码。
另一种方式就是将实时类实现Runnable接口,在其run()方法中,通过无限循环将实时数据添加进TimeSeries,下面是较简单的实现代码:
java 代码
-
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartPanel;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.axis.ValueAxis;
- import org.jfree.chart.plot.XYPlot;
- import org.jfree.data.time.Millisecond;
- import org.jfree.data.time.TimeSeries;
- import org.jfree.data.time.TimeSeriesCollection;
-
- public class RealTimeChart extends ChartPanel implements Runnable
- {
- private static TimeSeries timeSeries;
- private long value=0;
-
- public RealTimeChart(String chartContent,String title,String yaxisName)
- {
- super(createChart(chartContent,title,yaxisName));
- }
-
- private static JFreeChart createChart(String chartContent,String title,String yaxisName){
-
- timeSeries = new TimeSeries(chartContent,Millisecond.class);
- TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(timeSeries);
- JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(title,"时间(秒)",yaxisName,timeseriescollection,true,true,false);
- XYPlot xyplot = jfreechart.getXYPlot();
-
- ValueAxis valueaxis = xyplot.getDomainAxis();
-
- valueaxis.setAutoRange(true);
-
- valueaxis.setFixedAutoRange(30000D);
-
- valueaxis = xyplot.getRangeAxis();
-
-
- return jfreechart;
- }
-
- public void run()
- {
- while(true)
- {
- try
- {
- timeSeries.add(new Millisecond(), randomNum());
- Thread.sleep(300);
- }
- catch (InterruptedException e) { }
- }
- }
-
- private long randomNum()
- {
- System.out.println((Math.random()*20+80));
- return (long)(Math.random()*20+80);
- }
- }
-
-
- import java.awt.BorderLayout;
- import java.awt.event.WindowAdapter;
- import java.awt.event.WindowEvent;
- import javax.swing.JFrame;
-
- public class Test
- {
-
-
-
-
- public static void main(String[] args)
- {
- JFrame frame=new JFrame("Test Chart");
- RealTimeChart rtcp=new RealTimeChart("Random Data","随机数","数值");
- frame.getContentPane().add(rtcp,new BorderLayout().CENTER);
- frame.pack();
- frame.setVisible(true);
- (new Thread(rtcp)).start();
- frame.addWindowListener(new WindowAdapter()
- {
- public void windowClosing(WindowEvent windowevent)
- {
- System.exit(0);
- }
-
- });
- }
- }
这两中方法都有一个问题,就是每实现一个图就要重新写一次,因为实时数据无法通过参数传进来,在想有没有可能通过setXXX()方式传进实时数据,那样的话就可以将实时曲线绘制类封装起来,而只需传递些参数即可(或者谁有更好的办法??)。
- 描述: Test的运行结果
- 大小: 35.8 KB
分享到:
相关推荐
本文将基于提供的代码片段,深入探讨如何使用JFreeChart实现实时更新的曲线图。 ### 实现原理 在Java中使用JFreeChart创建实时曲线图,主要涉及以下几个关键步骤: 1. **创建时间序列(Time Series)**:时间序列...
JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括曲线图、柱状图、饼图、散点图等。在本示例中,我们将重点关注如何使用JFreeChart绘制曲线图,以及如何在数据点上显示具体的数据值。 ...
在"JSP+JFreeChart 实现曲线图、柱形图"的项目中,开发者首先需要在JSP页面中引入JFreeChart的相关库。这通常通过在页面头部添加JAR依赖或者使用Maven或Gradle等构建工具来完成。然后,我们需要在Java后端代码中创建...
综上所述,结合Applet和JFreeChart实现曲线走势图是一项涉及Web客户端编程、数据可视化和Java图形处理的综合任务。尽管Applet已逐渐被淘汰,但学习这个过程对于理解早期Web技术以及图形库的使用仍然有其价值。
JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、曲线图和饼图等,使得在Java应用中展示数据变得更加直观和美观。在本篇文章中,我们将深入探讨如何利用JFreeChart来创建这些图表,...
JFreeChart简单实现光滑曲线绘制 JFreeChart是一个流行的开源图表库,用于生成各种类型的图表,包括折线图、柱状图、饼图等。下面我们将介绍如何使用JFreeChart简单实现光滑曲线绘制。 光滑曲线绘制 光滑曲线绘制...
JFreeChart是一个强大的Java库,它允许开发者创建各种类型的图表,包括曲线图、柱状图、饼状图和分布图等。在当前JS图表库盛行的时代,JFreeChart依然因其稳定性和丰富的定制性而在Java领域占有一席之地。本文将详细...
jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...
JFreeChart则是一个强大的Java图表库,能够生成多种类型的图表,包括柱状图、圆饼图和曲线图,非常适合在数据可视化应用中使用。在Struts2.0中集成JFreeChart,可以为Web应用程序添加丰富的图形展示功能,让数据以...
Flex是一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA),而JFreeChart则是一个Java库,专门用于生成高质量的图表,包括饼状图、柱状图和曲线图等。 在Flex中,我们通常使用MXML和...
在这个场景下,JFreeChart 是一个强大的 Java 库,它为开发者提供了丰富的图表类型,包括曲线图,用于直观地展示数据趋势。下面我们将深入探讨 JFreeChart 的使用方法、特点以及如何在 Java 中生成曲线图。 首先,...
使用jfreechart绘制风速风向玫瑰图可以非常方便地实现各种风速风向分析。例如,我们可以使用不同的颜色来表示不同的风速和风向,可以使用雷达图像网格来表示风速的分布情况等。jfreechart提供了非常灵活的图表定制...
JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图形绘制功能,包括曲线图、饼图和柱状图等。这个库是免费的,适用于各种项目,无论是商业应用还是个人学习,都能从中受益。在本篇文章中,我们将深入探讨...
**JFreeChart库详解:创建3D曲线图、3D饼图和3D柱状图** JFreeChart是一个强大的Java图形库,它提供了多种图表类型,包括曲线图、饼图和柱状图,且支持2D和3D效果。本篇文章将深入探讨如何使用JFreeChart来创建这些...
在本篇内容中,我们将深入探讨如何利用JFreeChart库来实现曲线图,并通过实例来展示其基本用法。 首先,我们需要了解JFreeChart的基本结构。JFreeChart的核心是`ChartFactory`类,它提供了创建各种图表的静态工厂...
在提供的代码片段中,演示了如何使用JfreeChart库创建一个动态更新的时间序列曲线图。该实例涉及的关键概念和代码分析如下: #### 创建图表 - **导入必要类**:首先,代码导入了JFreeChart相关的类,如`...
JFreeChart双Y轴折线图实例,可以直接运行,实例类为LineChartDemo1.JAVA,有注释。 若想在web工程使用只需如下。 String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session); ...
这个压缩包文件包含了一系列的示例,展示了JFreeChart库的强大功能,包括曲线图、柱形图、饼状图和区域图等。 1. **曲线图(Curve Chart)** 曲线图常用于展示连续的数据变化趋势,例如时间序列数据。JFreeChart提供...