Java graph or chart library上有一个早期的帖子,其中JFreeChart被发现非常好,但,如stated in its FAQ,它不适合实时渲染。< / p>
有人可以推荐一个支持实时渲染的类似库吗?只是一些基本的xy渲染 - 例如,从数据采集系统获取电压信号并按原样绘制(x轴上的时间,y轴上的电压)。
答案 0 :(得分:9)
FAQ实际上说的是JFreeChart不支持硬实时制图,这意味着当新数据到达时或者在新数据到达后确定性间隔时,图表不会更新。但是我发现JFreeChart可以用于您描述的那种应用程序。你可以达到每秒1次更新,这很好。我不认为人眼可以比这更快地跟随。
如果你想要更多的东西,我怀疑你会发现任何Java(甚至是其他语言)。我们使用的操作系统并非设计为实时。您不能保证他们会在事件发生后的最短时间内做出回应。需要与硬件驱动程序紧密集成才能显示超过每秒1-10帧。
但是,如果您正确设计应用程序,操作系统将做出快速响应,您的应用程序可以轻松显示“实时”图表(意味着每秒更新一次的图表)。在紧急情况下,不要使用您的应用程序来关闭阀门!
答案 1 :(得分:7)
答案 2 :(得分:6)
偶然发现了如何使用visualvm charting library的说明。看起来很不错!
答案 3 :(得分:5)
查看processing - 这是一个基于java的开源环境,专为各种动画可视化而设计。
答案 4 :(得分:5)
好吧,如果它必须是Java,那么你可能想要研究这些。
答案 5 :(得分:5)
您可能已经找到了一个很好的解决方案,但如果没有,我最近在生成2D图表的框架上做了一些工作,允许以每秒50次以上的变化进行实时更新。
最初的意图是模仿网页滚动区域中图表记录器的外观,但我相信这种方法有更广泛的应用。
如果有人有兴趣,可以在Chart Recorder Demo找到演示。
外观由模板定义(www.journeylog.co.uk/chart/templates/chartRecorder.xml)。一个功能是能够使用ExplorerCanvas在服务器或浏览器中指定绘图。
如果有人有兴趣,我可以为它开始一个开源项目。
答案 6 :(得分:4)
实时足够快swtchart,至少在我的经验中。即使有批次的数据。不要被版本号吓跑,是的,它是一个相当新的API,但我成功地使用它没有问题。
顾名思义,它基于SWT,它使用本机操作系统绘图。此外,它还可以快速绘制一些聪明的优化,例如不绘制数据集中的所有点(请参阅大型系列示例代码段)。
答案 7 :(得分:2)
答案 8 :(得分:2)
JACket是一个非常优秀的图书馆,目标是减少内存,特别是在嵌入式环境中:https://sourceforge.net/projects/jcckit。
小于&lt; 100 kb。
答案 9 :(得分:1)
您可以挖掘NetBeans的源代码。分析器可以实时绘制各种内容,例如内存使用情况。
答案 10 :(得分:1)
SWT XYGraph可以使用您自己的数据提供者绘制数据,因此您可以创建提供实时数据的实时数据提供者。使用SWTChart和JFreeChart,您必须为它准备整个数组。
答案 11 :(得分:0)
这个问题在以下方面得到了很好的回答: Java Real time graph plotting
由于VisualVM包含Charting API,并且此API包含在JDK中,因此您可以使用良好/快速的图表API。