我有一个像下面这样的长文件(我只是在写一个样本)
0.0 0.00209627946771 6483.0 3092622.0 1100
0.1 0.00253798848144 78.0 30733.0 1100
0.2 0.0174927113703 6.0 343.0 1100
0.3 0.0 0.0 35.0 1100
0.4 0.1 1.0 10.0 1100
0.5 0.0 0.0 4.0 1100
0.9 0.0 0.0 1.0 1100
1.0 0.0 0.0 2.0 1100
0.0 0.00292927058349 9057.0 3091896.0 2100
0.1 0.00299136583044 88.0 29418.0 2100
0.2 0.00743889479277 14.0 1882.0 2100
0.3 0.00578034682081 2.0 346.0 2100
0.4 0.0172413793103 2.0 116.0 2100
0.5 0.030303030303 1.0 33.0 2100
0.6 0.0 0.0 11.0 2100
0.7 0.0 0.0 10.0 2100
0.8 0.0 0.0 11.0 2100
0.9 0.181818181818 2.0 11.0 2100
1.0 0.0 0.0 16.0 2100
0.0 0.00318549549582 9845.0 3090571.0 3100
0.1 0.00273270708796 80.0 29275.0 3100
0.2 0.00489168413697 14.0 2862.0 3100
0.3 0.00810372771475 5.0 617.0 3100
0.4 0.010101010101 2.0 198.0 3100
我有兴趣绘制的数据是第一和第二列。在第5列中有我的模拟时间(它是与不同时间戳相关的信息)。
从Creating a gif with gnuplot: Gif doesn't play中汲取灵感我想写一些类似
的内容set terminal gif size 1000,800 animate delay 6
set output 'try.gif'
set xrange [0:1]
set yrange [0:1]
do for [i=100:40200:100] {
....
}
但我不知道如何向gnuplot指出第i列数据是由最后一列给出的。有什么建议吗?
答案 0 :(得分:1)
似乎时间戳是等距的。然后您可以尝试以下内容:
set terminal gif size 1000, 800 animate delay 100
set output 'try.gif'
# Viewing the 3D plot from top imitates a 2D plot.
set view map
set xlabel "x"
set ylabel "y"
do for [i=1100:3100:1000] {
# Only points at time "i" are plotted.
set zrange [i-1:i+1]
set title "Time: ".i
splot "data.dat" using 1:2:5 w lp
}
在Debian Linux上使用Gnuplot 4.6进行测试。我不关心性能一次又一次地阅读整个文件。