Как обновить числовые значения на графике при изменении графика - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь добавить информацию о времени на графике заполненных кругов по мере их появления (по одному) на графике.Таким образом, это похоже на фильм с заполненным кругом, движущимся по сюжету.

Я пробовал простой код 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.

1 Ответ

1 голос
/ 21 апреля 2019

Вы можете использовать стиль построения with labels и построить график времени из файла данных / блока данных по определенной координате, здесь (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

Результат:

enter image description here

...