gpt4 book ai didi

c++ - 通过 Gnuplot 的管道接口(interface)从 C/C++ 可视化

转载 作者:可可西里 更新时间:2023-11-01 16:40:08 26 4
gpt4 key购买 nike

我正在尝试使用 gnuplot 的管道接口(interface)(一个标准的 gnuplot_i.{cpp,hpp}),以便生成在另一个用 C++ 编写的程序中不断变化的值的实时显示。这工作正常,但我想看看是否有人有任何改进建议。

此实现包含一个方便的方法,可以将单个 vector 和 2 个 vector 绘制为二维图。它通过调用 mktemp 函数的标准库写入一个临时文件,然后将其用作 gnuplot plot 调用的输入来实现这一点。这会生成太多的临时文件,并且当图上的更新率很高时(也许 IO 在某一点上受到限制)似乎无法正常工作。我决定在绘图调用中使用“-”伪文件,并将 vector 直接发送到管道(以一行带有“e”的结尾)。这效果更好,但仍然不是很好。

有没有一种更巧妙的方法来做我想做的事情,而不是在值发生变化时不断地重新生成绘图?用新信息更新情节安全的频率是多少?或者,也许有更简单的方法来实现我想要做的事情?

@安迪罗斯

我本身没有“要求”。我所说的 slick 的意思是,也许有一种更优雅的方法来做我正在尝试做的事情,同时仍然使用 gnuplot。虽然优雅是主观的,但我发现我目前采用的方法特别不优雅。我所说的安全是指是否有人知道采用上述方法时,在什么更新速率下会出现 IO 问题(例如,延迟、显示锁定等)。

出于以下原因(至少是我的候选名单),我想避免使用工具包。

  • 我发现它们在不同的体系结构上正确安装通常很重要,尤其是作为非 root 用户(以及当它们需要跨操作系统不标准的依赖项时)。
  • 对于使用此软件的其他人,它们会产生额外的编译依赖性。
  • 似乎没有任何真正的标准 大多数人用于此目的 afiak(我自己以及与我共事的大多数人通常只是保存日志类型文件并进行运行后分析在 MATLAB 中)。
  • 我知道/正在学习 gnuplot 语法。我不知道 superPlottingApiXX 的语法。
  • gnuplot 的功能集几乎是我希望使用该软件完成的事情类型的理想选择。

但是,如果您对 C/C++ 绘图库有任何特别的建议,这些建议看起来很适合上面的列表,我总是对建议感兴趣(警告:我已经环顾四周找到它们) .

最佳答案

gnuplot-cpp是围绕与 Gnuplot 的 POSIX 管道连接的面向对象的 C++ 包装器接口(interface)。

立即编译的示例文件和接口(interface)代码看起来不错;我将在我当前的项目中尝试它。

关于c++ - 通过 Gnuplot 的管道接口(interface)从 C/C++ 可视化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2180471/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com