【问题标题】:Gnuplot C++ plotting in real time from txt filesGnuplot C++ 从 txt 文件实时绘图
【发布时间】:2013-08-07 10:45:27
【问题描述】:

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

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

例如:

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

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

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

我正在绘制的那种东西的图片: http://imgur.com/3eTpMaB

【问题讨论】:

标签: c++ gnuplot continuous


【解决方案1】:

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

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

将动画数据传送到 gnuplot 的问题是您不知道它是否跟上。所以冲洗和睡眠是至关重要的。但是我已经用 gnuplot 构建了一个示波器,所以我知道它可以很好地工作。

【讨论】:

  • 嗨,谢谢,我使用管道发送到 gnuplot。查看我的代码后,它似乎工作得更好。它会轻微闪烁,但比以前更容易看到。可能只需要调整睡眠值。干杯
  • 很遗憾,此 API 不支持 3d 绘图。
  • 它确实支持 3d 绘图。软件包中包含此类示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-23
  • 2011-05-25
相关资源
最近更新 更多