построение нескольких графиков и анимации из файла данных в gnuplot - PullRequest
0 голосов
/ 27 января 2020

Предположим, у меня есть следующий пример файла данных.

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

В первом столбце указано значение времени. Второй дает значения х и 3-й столбец у. Я буду sh строить графики y как функции x из этого файла данных в разное время,

, т. Е. Для t = 0 я буду чертить, используя 2: 3 со строками до индекса t = 0 , Затем то же самое я сделаю для переменных при t = 1.

В конце дня я хочу получить gif, то есть анимацию того, как график y vs x меняет форму с течением времени на. Как я могу сделать это в gnuplot?

1 Ответ

1 голос
/ 27 января 2020

Что вы пробовали до сих пор? (Отметьте help ternary и help 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:($1==i?$3:NaN) w lp pt 7 ti sprintf("Time: %g",i)
}
set output
### end of code

Результат:

enter image description here

Сложение :

Значение $1==i?$3:NaN в словах:

Если значение в первом столбце равно i, то результатом является значение в третьем столбце, в противном случае оно будет NaN («Не число») .

...