Gnuplot中的动态绘图(在MATLAB中绘制)

时间:2012-02-17 03:38:00

标签: matlab plot common-lisp gnuplot octave

是否可以在Gnuplot中创建动态图?我需要的是,由于数据是通过某个循环生成的,我将使用gnuplot在x-y轴上放置一些标记,保留较旧的标记。因此,不知何故,我将能够观察数据的演变,而不仅仅是看到最终的批次结果。

我特别想要的是MATLAB中的“drawow”命令。

虽然不完全相关,但现在我使用常见的lisp在循环和cgn中生成数据,以便使用gnuplot在lisp中绘制。 (我可以使用cgn利用gnuplot在公共lisp中以批量形式绘制数据)

非常感谢您的关注。

编辑:我为此目的在普通的lisp中编写了一个代码。你可以在这里查看:
Plotting data sequentially from emacs using Common Lisp and Gnuplot
然而,这个线程更通用,并在gnuplot中请求动态绘图。欢迎任何建议。

2 个答案:

答案 0 :(得分:1)

不幸的是,在gnuplot中绘制单点并不容易,但幸运的是,这里讨论了一些简单的黑客攻击:Plotting a Single Point with Gnuplot。这里讨论的 echo 方法只适用于Unix环境。

在您的计划中使用replot代替plot时,应该会为您提供一个随时间变化的点数图表,以保留以前的点数。

另一种方法,就是我使用python,就是把数据点放在一个文件中。在每次迭代中,我都会向文件添加点,然后再次使用gnuplot进行绘图。它有点难看,但它在大多数情况下都能完成。

答案 1 :(得分:0)

我不确定我是否完全明白你在问什么,但是如果你想在你绘制的最后一个字符串中添加一个图(并且你正在使用gnuplot 4.4),那么下面的技巧就是:< / p>

gnuplot> plot sin(x),cos(x)  #plot sin and cos in an xterm window
gnuplot> eval GPVAL_LAST_PLOT."cos(x+pi/2.5)"  #add cos(x+pi/2.5) to the current plot

无论如何,我不确定这是不是你要求的,因为我不使用Matlab,但我希望它是。