我想繪製使用gnuplot與FreeFEM ++獲得的數據。繪製FreeFEM ++數據到GNUPLOT
從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
其中由於某種原因,其我不知道每個'pack'中有兩次重複的數據點。但這是他們如何告訴你在FreeFem手冊中做到的。顯然,GNUPLOT出於某種原因需要「數據包」之間的空格。
我試圖用gnuplot的腳本來繪製數據:
set pm3d at b
set palette rgbformulae 30,31,32
set hidden3d
splot "sol.dat" with lines palette
它繪製精細,但我認爲pm3d沒有做任何事情。我認爲pm3d會在劇情的底部包含熱量強度的彩色圖案。我也沒有找到用純色填充情節中的線條之間的間隙的方式。
謝謝。
你正在混合幾個東西(pm3d,hidden3d,線條調色板),看起來像你想要一個非常花哨的情節......你必須用*一個*行分開兩個數據塊才能使用pm3d。正確的語法是'set pm3d at b'。您需要兩次添加一個點,因爲'pm3d'使用四個點來創建一個具有一種顏色的矩形。一個'4x4'矩陣將產生'3x3'彩色矩形。你能用文字解釋你的情節應該是什麼樣子(如何顯示線條,表面如何?,pm3d只在底部?應該隱藏什麼等)。就像你所擁有的那樣,這些選項不適合在一起。 – Christoph
@Christoph,謝謝。我修復了錯字,幷包含了我想要的更好的描述以及我得到的內容的圖像。 我不知道那些命令不兼容。 –