从 gnuplot 中的数据文件绘制多个图形和动画

plotting multiple graphs and animation from a data file in gnuplot

假设我有以下示例数据文件。

0   1   2
0   3   4   
0   1   9
0   9   2
0   19  0
0   6   1
0   11  0
1   3   2
1   3   4   
1   1   6
1   9   2
1   15  0
1   6   6
1   11  1
2   3   2
2   4   4   
2   1   6
2   9   6
2   15  0
2   6   6
2   11  1

第一列给出时间值。第二个给出 x 和第 3 列 y 的值。我希望在不同时间从该数据文件绘制 y 的图形作为 x 的函数,

即,对于 t=0,我将使用 2:3 绘制直到 t=0 索引的线。然后我将为 t=1 处的变量做同样的事情。

在一天结束时,我想要一个 gif,即 y vs x 图如何随着时间的推移改变形状的动画。我如何在 gnuplot 中执行此操作?

到目前为止你尝试了什么? (检查 help ternaryhelp gif

您需要使用三元运算符过滤数据,然后创建动画。

代码:

### plot filtered data and animate
reset session

$Data <<EOD
0   1   2
0   3   4   
0   1   9
0   9   2
0   19  0
0   6   1
0   11  0
1   3   2
1   3   4   
1   1   6
1   9   2
1   15  0
1   6   6
1   11  1
2   3   2
2   4   4   
2   1   6
2   9   6
2   15  0
2   6   
2   11  1
EOD

set terminal gif animate delay 50 optimize
set output "myAnimation.gif"

set xrange[0:20]
set yrange[0:10]
do for [i=0:2] {
    plot $Data u 2:(==i?:NaN) w lp pt 7 ti sprintf("Time: %g",i)
}
set output
### end of code

结果:

加法:

==i?:NaN的字义:

如果第一列中的值等于 i,则结果为第三列中的值,否则将为 NaN ("Not a Number").