我正在尝试使用 gnuplot 绘制通过 FreeFEM++ 获得的数据。
在 FreeFEM 中,我使用以下代码保存了数据:
{ ofstream ff("sol.dat");
for (int i=0;i<Th.nt;i++){
for ( int j=0; j<3; j++){
ff<<Th[i][j].x << "\t" << Th[i][j].y << "\t" << u[][Vh(i,j)] << endl;
}
ff<<Th[i][0].x << "\t" << Th[i][0].y << "\t" << u[][Vh(i,0)] << "\n\n\n";
}
}
第一行数据的示例是:
0.635787 -0.0440338 0.0056924
0.65234 -0.063181 0.00797757
0.655369 -0.0412323 0.00795786
0.635787 -0.0440338 0.0056924
0.597634 -0.0376 3.06323e-33
0.613904 -0.0585366 0.0030425
0.616879 -0.0388107 0.0030295
0.597634 -0.0376 3.06323e-33
出于某种我不知道的原因,每个“包”中有一个重复两次的数据点。但这就是他们在 FreeFem 手册中告诉您这样做的方式。显然 GNUPLOT 出于某种原因需要“数据包”之间的空格。
我正在尝试使用 gnuplot 脚本绘制数据:
set pm3d at b
set palette rgbformulae 30,31,32
set hidden3d
splot "sol.dat" with lines palette
它的情节很好,但我认为 pm3d 没有做任何事情。我认为 pm3d 会在图的底部包含热强度的彩色图案。此外,我找不到用纯色填充图中线条之间的间隙的方法。
谢谢你。