29

在Java 图形或图表库上有一个较早的线程,发现 JFreeChart 非常好,但是,正如其常见问题解答中所述,它不适合实时渲染。

谁能推荐一个支持实时渲染的类似库?只是一些基本的 xy 渲染 - 例如,从数据采集系统获取电压信号并在它出现时绘制它(x 轴上的时间,y 轴上的电压)。

4

12 回答 12

9

常见问题解答实际上说的是 JFreeChart 不支持硬实时图表,这意味着图表不会在新数据到达时或之后的确定时间间隔更新。但是我发现 JFreeChart 可用于您所描述的那种应用程序。您可以实现每秒 1 次更新,这很好。我不认为人眼能比这更快地跟随一些东西。

如果你想要更多的东西,我怀疑你会在 Java(甚至是另一种语言)中找到任何东西。我们使用的操作系统并非设计为实时的。您不能保证他们会在事件发生后的最短时间间隔内做出响应。需要与硬件驱动程序紧密集成才能显示超过 1-10 帧/秒。

但是,如果您正确设计应用程序,操作系统会快速响应,并且您的应用程序可以轻松显示“实时”图形(即每秒更新一次的图形)。只是不要使用您的应用程序在紧急情况下关闭阀门!

于 2009-02-17T08:10:01.040 回答
7

http://www.live-graph.org/

于 2009-02-17T08:30:05.080 回答
6

刚刚偶然发现有关如何使用visualvm 图表库的描述。看起来很不错!

于 2010-11-23T19:23:51.260 回答
5

看看处理——它是一个开源的、基于 java 的环境,专为各种动画可视化而设计。

于 2009-02-17T07:55:12.497 回答
5

好吧,如果它必须是 Java,那么您可能想要研究这些。

于 2009-02-17T08:51:35.717 回答
5

您可能已经找到了一个很好的解决方案,但如果没有,我最近在一个框架上做了一些工作,用于生成 2D 图表,允许以每秒超过 50 次更改的速度进行实时更新。

最初的目的是在网页的滚动区域模仿图表记录器的外观,但我相信这种方法有更广泛的应用。

如果有人感兴趣,可以在Chart Recorder Demo中找到演示。

外观由模板 (www.journeylog.co.uk/chart/templates/chartRecorder.xml) 定义。一项功能是能够使用 ExplorerCanvas 在服务器或浏览器中指定绘图。

如果有人感兴趣,我可以为它启动一个开源项目。

于 2009-12-08T23:56:02.773 回答
4

swtchart对实时来说足够快,至少在我的经验中是这样。即使有大量数据。不要被版本号吓跑,是的,它是一个相当新的 API,但我成功使用它没有问题。

顾名思义,它基于SWT,使用原生 OS 绘图。它还为快速绘制做了一些巧妙的优化,比如不绘制数据集中的所有点(参见大型系列示例片段)。

于 2009-02-17T20:21:53.917 回答
2

这似乎是一个不错的候选人。

http://jchart2d.sourceforge.net/

演示:

http://jchart2d.sourceforge.net/applet.shtml

于 2011-07-19T02:36:56.593 回答
2

JCCkit 是一个很好的库,它的目标是更少的内存,尤其是在嵌入式环境中:https ://sourceforge.net/projects/jcckit 。

占用少于 <100 kb 。

于 2012-08-16T08:42:06.637 回答
1

您可以挖掘 NetBeans 的源代码。分析器实时绘制各种事物的图形,例如内存使用情况。

于 2009-02-17T08:19:21.923 回答
1

SWT XYGraph可以使用您自己的数据提供者绘制数据,因此您可以创建一个提供实时数据的实时数据提供者。使用 SWTChart 和 JFreeChart,您必须为它准备整个数组。

于 2012-07-07T19:46:15.490 回答
0

这个问题已经很好地回答了: Java Real time graph plotting

由于 VisualVM 包含一个图表 API,并且此 API 包含在 JDK 中,因此您可以使用一个良好/快速的图表 API。

于 2013-10-14T21:05:01.563 回答