嗨,我目前正在通过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的事情是您不知道它是否能跟上。因此,潮红和睡眠至关重要。但是我已经用gnuplot搭建了一个示波器,所以我知道它可以很好地工作。

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

10-11 22:38
查看更多