`
wangrusheng5200
  • 浏览: 302480 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JFreeChart 实时曲线图

阅读更多

最近要用到实时曲线图,在网上大概找了一下,有两种实现方式,一种就是JFreeChart的官方实例MemoryUsageDemo.java.通过一个实现java.Swing.Timer的内部类,在其监听器中将实时数据添加进TimeSeries,由于Timer是会实时执行的,所以这个方法倒是没有什么问题,可以参考代码。
      另一种方式就是将实时类实现Runnable接口,在其run()方法中,通过无限循环将实时数据添加进TimeSeries,下面是较简单的实现代码:

此代码经过测试,可运行
//RealTimeChart .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);   
        //数据轴固定数据范围 30s   
        valueaxis.setFixedAutoRange(30000D);   
   
        valueaxis = xyplot.getRangeAxis();   
        //valueaxis.setRange(0.0D,200D);   
   
        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);   
    }   
}   
   
 
//Test.java   
import java.awt.BorderLayout;   
import java.awt.event.WindowAdapter;   
import java.awt.event.WindowEvent;   
import javax.swing.JFrame;   
   
public class Test   
{   
   
    /**  
     * @param args  
     */   
    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);   
        }   
   
    });   
    }   
} 
 
分享到:
评论

相关推荐

    java中关于JFreeChart实现实时曲线图

    在Java编程语言中,利用JFreeChart库实现实时曲线图是一种常见的数据可视化技术,尤其适用于需要实时监控或展示数据变化的应用场景。JFreeChart是一个开源的Java图表库,提供了丰富的图表类型和自定义选项,使得...

    JFreeChart画曲线图

    JFreeChart是一款强大的Java图表库,它允许开发者创建多种类型的2D图表,包括曲线图、柱状图、饼图、散点图等。在本示例中,我们将重点关注如何使用JFreeChart绘制曲线图,以及如何在数据点上显示具体的数据值。 ...

    jfreechart各类曲线图JSP代码

    JFreeChart是一组功能强大、灵活易用的Java绘图API,使用它可以生成多种通用性的报表,包括柱状图、饼图、曲线图、甘特图等。它能够用在Swing和Web等中制作自定义的图表或报表,并且得到广泛的应用。本文将通过引领...

    JFreeChart实现实时曲线图

    JFreeChart实现实时曲线图 JFreeChart是Java平台上一种流行的图表库,提供了丰富的图表类型和自定义功能。实现实时曲线图是JFreeChart的一个重要应用场景,本文将详细介绍JFreeChart实现实时曲线图的方法。 实时...

    JSP+JFreeChart 实现曲线图、柱形图

    在IT行业中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,而JFreeChart则是一个强大的Java图表库,能够生成各种类型的图表,包括曲线图和柱形图。本项目结合两者,旨在实现数据可视化,使得Web应用可以...

    使用 jfreechart 生成 曲线、柱状图、饼状图、分布图 展示到JSP

    JFreeChart是一个强大的Java库,它允许开发者创建各种类型的图表,包括曲线图、柱状图、饼状图和分布图等。在当前JS图表库盛行的时代,JFreeChart依然因其稳定性和丰富的定制性而在Java领域占有一席之地。本文将详细...

    jfreechart 柱状图、曲线图、饼图经

    JFreeChart是一款强大的Java图形库,它为开发者提供了丰富的图表类型,包括柱状图、曲线图和饼图等,使得在Java应用中展示数据变得更加直观和美观。在本篇文章中,我们将深入探讨如何利用JFreeChart来创建这些图表,...

    利用jFreeChart做曲线图、饼状图、柱状图

    jFreeChart是java编程语言中一个功能强大、开源免费的图表库,能够生成各种类型的图表,包括曲线图、饼状图、柱状图等。通过jFreeChart,可以快速地生成高质量的图表,以满足不同领域的需求。 jFreeChart核心对象类...

    jfreechart曲线图

    在描述中提到的“jfreechart曲线图”是JFreeChart库中的一种重要图表类型,通常用于展示数据随时间变化的趋势。 在Java开发中,JFreeChart库的使用可以极大地简化数据可视化的复杂度。它提供了丰富的API,允许...

    struts2 jfreechart 即时曲线图

    这是一个struts2+jfreechart的完整源码程序。...运行DemoTest/RealTimeChart可看到即时曲线图示例。本来这些应资源共享,可下载别人好东西时需要积分,所以设置为1分。希望大家可以互相交流java技术!

    flex +jfreechart生成 饼状图+曲线图+柱状图(完整版)

    Flex是一种基于ActionScript的开源框架,主要用于构建富互联网应用程序(RIA),而JFreeChart则是一个Java库,专门用于生成高质量的图表,包括饼状图、柱状图和曲线图等。 在Flex中,我们通常使用MXML和...

    柱状图 圆饼图 曲线图 struts2.0 jfreechart

    JFreeChart则是一个强大的Java图表库,能够生成多种类型的图表,包括柱状图、圆饼图和曲线图,非常适合在数据可视化应用中使用。在Struts2.0中集成JFreeChart,可以为Web应用程序添加丰富的图形展示功能,让数据以...

    java+jfreechart+struts 生成曲线图

    java+jfreechart+struts 生成曲线图 java+jfreechart+struts 生成曲线图 java jfreechart 曲线图 java jfreechart 曲线图 java jfreechart 曲线图 谁需要完整项目可以去http://download.csdn.net/source/2665347

    jfreechart曲线图饼图柱状图 免费图标 图表

    JFreeChart是一款强大的Java图表库,它为开发者提供了丰富的图形绘制功能,包括曲线图、饼图和柱状图等。这个库是免费的,适用于各种项目,无论是商业应用还是个人学习,都能从中受益。在本篇文章中,我们将深入探讨...

    JFreeChart简单实现光滑曲线绘制

    JFreeChart是一个流行的开源图表库,用于生成各种类型的图表,包括折线图、柱状图、饼图等。下面我们将介绍如何使用JFreeChart简单实现光滑曲线绘制。 光滑曲线绘制 光滑曲线绘制是一种常用的图表绘制方式,用于...

    jfreechart 曲线图 3d饼图 3d柱状图

    **JFreeChart库详解:创建3D曲线图、3D饼图和3D柱状图** JFreeChart是一个强大的Java图形库,它提供了多种图表类型,包括曲线图、饼图和柱状图,且支持2D和3D效果。本篇文章将深入探讨如何使用JFreeChart来创建这些...

    jfreechart绘制的风速风向玫瑰图

    jfreechart绘制的风速风向玫瑰图 jfreechart是Java中一个流行的图表库,它提供了许多种类的图表,包括柱状图、折线图、饼图、雷达图等。本文主要介绍如何使用jfreechart绘制风速风向玫瑰图。 首先,了解jfreechart...

    Java生成曲线图

    在这个场景下,JFreeChart 是一个强大的 Java 库,它为开发者提供了丰富的图表类型,包括曲线图,用于直观地展示数据趋势。下面我们将深入探讨 JFreeChart 的使用方法、特点以及如何在 Java 中生成曲线图。 首先,...

    applet_+_JfreeChart_实现曲线走势图

    7. 测试与运行:运行HTML文件,浏览器会加载并执行Applet,此时曲线图应该已经在网页上正确显示。 值得注意的是,由于Java Applet的安全性和浏览器兼容性问题,现代Web开发中通常不再推荐使用Applet。若要在Web应用...

Global site tag (gtag.js) - Google Analytics