c++ - Gnuplot C++ 从 txt 文件实时绘图

标签 c++ gnuplot continuous

您好,我目前正在通过 C++ 中的管道绘制文件中的数据。我编写了一个函数来读取文本文件、处理信息、绘制文本文件中的数据并根据需要绘制标签和箭头。

现在我需要一种在循环中平滑绘制的方法,以便在每次迭代时读取和绘制不同的文本文件,而不会出现 Gnuplot 窗口闪烁。

例如:

for (unsigned int i = 0; i< 10; i++){
    Processing_Plotting(i, gp);
}

这是我在主程序中的代码,它将绘制由“i”指示的文本文件。例如:laserData1、laserData2 等。

目前由于调用的速度,情节闪烁且不可读。 我一直在寻找一种使用 Gnuplot 实时绘制数据的方法,但运气不佳, 任何帮助,将不胜感激。谢谢

一张我正在策划的事情的图片: http://imgur.com/3eTpMaB

最佳答案

gnuplot-iostream 附带了一个动画示例图书馆。它不会闪烁,至少在我的机器 (Linux) 上不会。免责声明:我是该库的作者,所以这是一个无耻的插件。

您的代码片段没有显示您实际上是如何与 gnuplot 交互的,但是您必须确保做三件事:1) 不要在每一帧之后关闭然后重新打开管道,2) 调用 fflush 在每帧之后在管道上,并且 3) 在帧之间添加延迟。在 Linux 上延迟调用 ::usleep(microseconds)(并包括 unistd.h),在 Windows 上调用 ::Sleep(milliseconds) 和包含 windows.h

关于将动画数据通过管道传输到 gnuplot 的事情是您不知道它是否跟上。所以冲洗和 sleep 是至关重要的。但我已经用 gnuplot 构建了一个示波器,所以我知道它可以很好地工作。

关于c++ - Gnuplot C++ 从 txt 文件实时绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18101371/

相关文章:

c++ - 使用 swap 作为函数而不是在算法本身中更快地编码

plot - Gnuplot:如何删除误差条图图例中的线条?

c++ - 网络消息格式化大量的 char、int,在 C\C++ 中转换

C++ 代码和来自 C 的对象?

gnuplot - 正确设置时间的 xrange

gnuplot - 我的 Octave 函数有什么问题?

c++ - 连续碰撞检测——如何在 C++ 中根据这两个方程找到碰撞

SVN合并branch to trunk导致文件冲突已解决

r - 根据类(class)间隔确定的结果创建装箱的变量

c++ - 错误 C1001 : An internal error has occurred in the compiler