Gnuplot gif 3d 板

Gnuplot gif 3d plate

为了我的迷你论文,我被告知要做一个模拟的 gif。论文本身是关于对平板的低速冲击。

我还没有真正开始,但最终想弄清楚如何绘制它。

基本上我有一个函数 $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)
...

如果我使用第二种方式,我最好如何为每个时间步分离数据?一个space够吗?

如何绘制数据?

我查看了这里的其他帖子,看看是否有人做过类似的事情,但如果有人能给我一些关于某些数据输出方案以及如何在 gnuplot 中使用它的建议,我将非常高兴。

我很高兴能得到任何帮助!

您好, 芬恩

我想这取决于个人品味以及生成数据的方式。

案例一:

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)
...

与案例 2 相比,案例 1 的数据文件会更紧凑,因为您不会多次列出相同的 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