Gnuplot:如何在暂停后绘制文件中的每一行

5 file gnuplot

我有一个3列数据文件,我想使用splot绘制相同的.但我想要的是gnuplot绘制第一行(以某种颜色,比如红色),然后暂停0.3秒然后继续绘制下一行(其他颜色,不是红色,比如绿色),暂停0.3秒然后继续前进到下一行......等等.

任何帮助将非常感激.

提前致谢

问候Pankaj

ADE*_*Ept 2

如果你想制作动画,你最好使用专门的工具(如 mplayer)。

使用 gnuplot 准备所有源图像(第一个绘制单行,第二个绘制两行等),然后使用 mplayer 或 Convert(来自 imagemagic)从源文件生成 avi 或动画 GIF。

您可以使用以下 shell 代码片段生成输入文件的部分副本,每个副本的行数不断增加。

file="your input file.dat"
lines=$(wc -l $file)
i=1
while [ $i -le $lines ] ; do
  head -${i} ${file} > ${file%.dat}-${i}lines.dat
done
Run Code Online (Sandbox Code Playgroud)

给定 somefile.dat 这将生成文件“somefile-1lines.dat”、“somefile-2lines.dat”等。然后你可以使用:

for f in *lines.dat ; do
  gnuplot ... $f 
done
Run Code Online (Sandbox Code Playgroud)

按顺序绘制它们。

如果我的假设是错误的,并且您真正想要的只是这个暂停,那么您可以尝试进行设置,以便 gnuplot 将从 stdin 获取数据,然后使用此 scipt (将其命名为paused-input.sh)通过管道输入文件每行后暂停:

#!/bin/bash
while read l ; do
  echo "$l"
  sleep 1
done
Run Code Online (Sandbox Code Playgroud)

然后像这样调用它:

(pause-input.sh | gnuplot ...) < somefile.dat
Run Code Online (Sandbox Code Playgroud)