Gnuplot gif 3d тарелка - PullRequest
       82

Gnuplot gif 3d тарелка

0 голосов
/ 14 июля 2020

для моей мини-диссертации, мне сказали сделать гифку симуляции. сам тезис касается низкоскоростных ударов по пластине.

Я еще не начал, но пытался выяснить, как это построить в конечном итоге.

В основном у меня есть функция $ z (x, y, t) $, и я хочу построить его так:

введите описание изображения здесь

У меня есть несколько вопросов по этой задаче:

1. Как мне записать данные при генерации данных и записи их в выходной файл?

Я мог бы использовать одну строку для данных x и y и позволить всем данным z следовать:

x1 y1 z(t1) z(t2) z(t3) ....
x2 y2 z(t1) z(t2) z(t3) ....
...

Или я мог бы сделать это так:

x1 y1 z(t1)
x2 y2 z(t1)
...

x1 y1 z(t2)
x2 y2 z(t2)
...

Если бы я использовал второй способ, как мне было бы лучше разделить данные для каждого временного шага? Достаточно ли одного места?

Как я могу построить данные?

Я просмотрел другие сообщения здесь, чтобы проверить, делал ли кто-то что-то подобное, но я был бы очень рад, если бы кто-нибудь мог дать мне совет о какой-то схеме вывода данных и о том, как ее использовать в gnuplot.

Я очень рад любой помощи!

Привет, Финн

1 Ответ

2 голосов
/ 14 июля 2020

Думаю, это дело вкуса и того, как вы генерируете данные.

Случай 1:

x1 y1 z(t1) z(t2) z(t3) ....
x2 y2 z(t1) z(t2) z(t3) ....
...

Случай 2:

x1 y1 z(t1)
x2 y2 z(t1)
...

x1 y1 z(t2)
x2 y2 z(t2)
...

Для случая 1 файл данных был бы более компактным по сравнению со случаем 2, потому что вы не указываете одинаковые x и y несколько раз.

Случай построения графика 1:

splot 'myData.dat' u 1:2:3 , '' u 1:2:4, '' u 1:2:5 

или

splot for [i=3:5] 'myData.dat' u 1:2:i

Случай построения графика 2: (если вы разделяете ровно 1 пустой строкой). Отметьте help every

splot 'myData.dat' u 1:2:3 every :::0::0, '' u 1:2:3 every :::1::1, '' u 1:2:3 every :::2::2

или

splot for [i=0:2] 'myData.dat' u 1:2:3 every :::i::i

Вариант построения 2: (если вы разделяете 2 (или более) пустыми строками). Проверьте help index.

splot 'myData.dat' u 1:2:3 index 0, '' u 1:2:3 index 1, '' u 1:2:3 index 2

или

splot for [i=0:2] 'myData.dat' u 1:2:3 index i
...