高性能实时数据显示

时间:2012-02-06 15:18:19

标签: performance visualization real-time-data

我正在尝试找到可用于高性能应用程序的绘图数据工具(主要是线图等)。我的数据窗口通常包含500到几千个点,我对帧率为10左右感到满意。我在套接字上以二进制流的形式接收数据。我在Mac OS X上。

我尝试了几种解决方案,并在下面讨论我的经验。

R :非常慢,无法跟上,读取插座很痛苦,图形闪烁。

matplotlib :非常慢但有点可用。但是,它需要运行大量的Python机器,而IMO的API非常不透明。在不断更新的情况下,包含图形的窗口变为模态,并且出现Mac沙滩球 - 对用户交互不太好。

Gnuplot :更好的性能和API。但是,通过生成临时ASCII(!)文件来传递大量数据到gnuplot - 这意味着如果我的帧速率上升,我开始做大量的磁盘读取,这是一个性能问题。

还有其他建议吗?

3 个答案:

答案 0 :(得分:5)

使用管道数据而非临时文件尝试gnuplot。用法示例:

plot "data_acquisition_cmd <" with image

您可以通过从管道读取命令来管理无休止的重新编译:

load "while [ 1 ]; do echo 'replot'; done <"

对于更强大的解决方案,请考虑使用Perl的gnuplot接口,如GnuplotIF或Python(gnuplot.py),因为它们允许对gnuplot进行编程控制,并且能够直接传递数据它。

编辑:感谢Jonhoo进行语法修正

答案 1 :(得分:0)

您可以考虑使用QCustomPlot http://www.workslikeclockwork.com/index.php/components/qt-plotting-widget/

在Qt中编写自己的数据可视化程序

它能够显示实时数据并且具有非常好的输出质量,我过去曾将它用于类似的项目。

答案 2 :(得分:0)

Qwt库具有实时绘制数据的能力。源树中甚至有几个例子可以提供不同的实时绘图方式。值得注意的是,我建议您查看示波器,刷新测试和实时示例。

此外,邮件列表上还有recent discussion可能会有所帮助。

相关问题