高性能实时数据显示

Jak*_*ake 5 performance visualization real-time-data

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

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

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

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

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

还有其他建议吗?

Phi*_*l H 5

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

plot "data_acquisition_cmd <" with image
Run Code Online (Sandbox Code Playgroud)

您还可以通过从管道读取命令来管道输送无休止的重新打印流:

load "while [ 1 ]; do echo 'replot'; done <"
Run Code Online (Sandbox Code Playgroud)

对于更强大的解决方案,请考虑使用从Perl到gnuplot的接口,例如GnuplotIF或Python(gnuplot.py),因为它们既允许对gnuplot进行程序控制,也可以将数据直接传递给它。

编辑:感谢Jonhoo的语法更正