Gnuplot 如何在绘图更改时更新绘图上的数值

Gnuplot 如何在绘图更改时更新绘图上的数值,gnuplot,Gnuplot,我试图在填充圆的绘图上添加时间信息,因为它们出现在绘图上(一次一个)。所以它看起来像是一部在情节上旋转的圆形电影 我尝试了下面所示的简单Gnuplot代码和数据集。 问题是要从绘图上的第一列获取更新的时间信息,其中“.?”是圆移动时的位置 set terminal aqua 1 set size ratio -1 set style fill solid set ylabel "Y" set xlabel "X" set label "Time=?.??? sec" at screen 0.

我试图在填充圆的绘图上添加时间信息,因为它们出现在绘图上(一次一个)。所以它看起来像是一部在情节上旋转的圆形电影

我尝试了下面所示的简单Gnuplot代码和数据集。 问题是要从绘图上的第一列获取更新的时间信息,其中“.?”是圆移动时的位置

set terminal aqua 1
set size ratio -1
set style fill solid 
set ylabel "Y" 
set xlabel "X"
set label "Time=?.??? sec" at screen 0.7,0.8
do for [t=0:5] {plot [-.25:1.5] [-.25:1.5] "d.dat" every ::t::t u 1:2:(0.02) t "" w circles; pause 1.0}
数据集是:

# Time    x      y
 0.2000 0.0000 0.0000
 0.4000 0.2618 0.2588
 0.6000 0.5236 0.5000
 0.8000 0.7854 0.7071
 1.0000 1.0472 0.8660
 1.2000 1.3090 0.9659

我不知道如何将第一列中的时间信息转换为plot命令。

您可以使用带有标签的打印样式
,并从数据文件/数据块在特定坐标处打印时间,这里是
(0):(1.4)

代码:

### time as label
reset session

$Data <<EOD
# Time    x      y
 0.2000 0.0000 0.0000
 0.4000 0.2618 0.2588
 0.6000 0.5236 0.5000
 0.8000 0.7854 0.7071
 1.0000 1.0472 0.8660
 1.2000 1.3090 0.9659
EOD

set key left
set xrange [-.25:1.5]
set yrange [-.25:1.5]
set style fill solid 

do for [t=0:5] {
    plot $Data every ::t::t u 2:3:(0.02) w circles notitle, \
    '' u (0):(1.4):(sprintf("Time: %g",$1)) every ::t::t with labels notitle
    pause 1.0
}
### end of code
时间作为标签 重置会话
$Data谢谢!你的解决方案很简单;正是我所希望的,不客气。如果这对你有帮助,请毫不犹豫地标记答案。顺便问一下,您是否知道gnuplot可以使用
设置术语gif animate
创建动画gif?我确实将答案标记为有用。我不知道设置术语gif动画。设置术语gif动画与设置术语aqua相比有什么优势?如果您想在演示文稿或网页中显示动画,只需创建一个动画gif并将其包含在内。无需安装gnuplot来显示动画。感谢您的澄清。