有没有像样的免费Java数据绘图库?

时间:2008-08-09 04:29:42

标签: java plot configuration freeware

在最近的Java项目中,我们需要一个基于Java的免费实时数据绘图工具。经过大量搜索,我们发现这个工具叫做NOAA的Scientific Graphics Toolkit or SGT。它看起来非常强大,但我们发现它并不是非常可配置的。或者至少不能配置足以满足我们的需求。我们最终深入研究了Java代码并对代码进行了逆向工程并对其进行了全面更改,使得绘图工具看起来和行为方式与我们希望它的外观和行为方式相同。当然,这为NOAA未来的升级提供了机会。

那么你使用什么免费或廉价的基于Java的数据绘图工具或库?

跟进:感谢JFreeChart建议。我查看了他们的网站,它看起来像一个非常好的数据图表和绘图工具。我应该在原来的问题中明确表示我正在专门绘制实时数据。我纠正了上面的问题,明确了这一点。看来JFreeChart support for live data is marginal at best, though。还有其他建议吗?

16 个答案:

答案 0 :(得分:17)

我在多个项目中使用JFreeChart取得了成功。 非常可配置。 JFreeChart是开源的,但他们收取developer guide的费用。如果你做的很简单,那么示例代码可能就足够了。否则,50美元的开发者指南是一个非常好的讨价还价。

关于“实时”数据,我还将JFreeChart用于这些类型的应用程序。不幸的是,我不得不创建一些具有适当同步机制的自定义数据模型,以避免竞争条件。然而,这并不是非常困难,JFreeChart仍然是我的首选。但是,正如常见问题解答建议的那样,如果这是一个大问题,JFreeChart可能不会给你最好的表现。

答案 1 :(得分:3)

我遇到了类似的问题(显示用于工程目的的快速更新数据),我正在使用JChart2D。它非常极简,并且有一些怪癖但看起来相当快:我正在运行一个基准速度测试,它将每秒2331点(333x7曲线)添加到条形图中,并在我的3GHz Pentium 4上使用1%的CPU。

答案 2 :(得分:2)

Live Graph支持实时渲染。

答案 3 :(得分:2)

我正在使用GRAL进行实时绘图。这是一个LGPL Java库。虽然它没有JFreeChart那么强大,但它有一个更好的API。我在很短的时间内完成了一个剧情。他们还发布了一个实时绘图示例。

答案 4 :(得分:2)

当我在google搜索java的开源绘图库时,我发现了这个问题。我对这里发布的答案不太满意,所以我对这个问题做了一些进一步的研究。 虽然这个问题已经在2008年发布,但这对某些人来说可能仍然很有意思。

以下是Open Source Charting & Reporting Tools in Java

的列表

答案 5 :(得分:1)

Plot4j也支持实时绘图!

答案 6 :(得分:1)

http://autoplot.org/允许实时更新,可用于创建多种类型的科学图。

要更新绘图,请指定数据文件的URL,然后附加&filePollUpdates=1&tail=100。请参阅http://autoplot.org/cookbook#Loading_Data

上的示例

答案 7 :(得分:1)

Waterloo Scientific Graphics是一个新的LGPL项目。数据对象是可观察的,可以在实时绘图场景中更新。 有关详细信息,请参阅http://waterloo.sourceforge.net/

一些屏幕截图:

http://waterloo.sourceforge.net/images/AnatomyZ.png

http://waterloo.sourceforge.net/images/contour.png

http://waterloo.sourceforge.net/images/errorbar.png

答案 8 :(得分:0)

我在之前的项目中使用了JFreeChart(http://www.jfree.org/jfreechart/)。它具有一些非常好的内置功能,并且设计是WAY可扩展的,因此如果您需要一些自定义图表注释或希望轴以不同方式呈现,或者其他什么,您可以随后滚动自己的扩展。这绝对值得一试。

答案 9 :(得分:0)

我在一个相当复杂的应用程序中使用了JFreeChart,该应用程序需要根据数据可视化数据流和计算。我们实现了通过鼠标可视化编辑数据图的能力,并具有非常大的数据点集。 JFreeChart处理得非常好。

不幸的是我坚持使用v0.7,但最新版本在API清晰度方面要好得多。社区非常有帮助,开发人员也在回复邮件。

如果您正在进行Web应用程序并且不想打扰库,则可以查看Google Chart API。没有自己使用它,但我开始了一些非常有希望的测试。

答案 10 :(得分:0)

检查ILOG的JViews - 他们有很多东西,可能符合您的需求。所有这些都是非常可配置的,速度非常快。虽然不是免费的。

答案 11 :(得分:0)

对于实时绘图,您可以使用QN Plot,JOpenChart或其分叉Openchart2。

答案 12 :(得分:0)

JHandles是Octave(数学包)的替代图形包。它可能值得研究,但具体的Octave可能没有你需要的东西。

- 亚当

答案 13 :(得分:0)

PtPlot 可能是个不错的选择。以前称为托勒密。

答案 14 :(得分:0)

jcckit可以处理实时绘图。虽然这是一只熊。

我把它分叉了,围绕它做了一个非常简单的包装,用于非实时绘图。底层复杂的界面也可以直接使用。

https://bitbucket.org/hughperkins/easyjcckit

答案 15 :(得分:-1)

您可能想查看JMathPlot