2013-08-16 64 views
0

我想繪製使用gnuplot的熱圖。gnuplot熱圖貼圖標籤

我的數據是(file.txt的):

5 0 0.0531072048 
5 5 0.3476492247 
5 10 0.322184913 
5 20 0.2824368116 
5 50 0.2919607884 
10 0 0.0472727812 
10 5 0.3578374264 
10 10 0.3483726737 
10 20 0.3212322874 
10 50 0.3017652051 
20 0 0.0536101408 
20 5 0.3460970331 
20 10 0.3589370763 
20 20 0.412912733 
20 50 0.3907459465 
50 0 0.0497156879 
50 5 0.3611165857 
50 10 0.4046003446 
50 20 0.4620183753 
50 50 0.4156261444 
100 0 0.0483082089 
100 5 0.3815755779 
100 10 0.4031628253 
100 20 0.4537462156 
100 50 0.4231632329 

當我鍵入以下命令

plot "file.txt" using 1:2:3 w image 

它產生熱圖。但是,網格並不完全對應於數據。有一個5乘5的網格,但網格單元的軸標籤不對應於文件的前兩列中的值。所有的網格單元也具有相同的大小。但是,它們應該是不同的大小。

讓我試着解釋我所期望的。 下面用下列命令生成的情節:

set xrange [-10:110] 
set yrange [-10:60] 
plot "file.txt" 

data points

每個「+」,在該圖對應於該文件的前兩列(x和y)的一排。對於每個「+」,在第三列中有一個值(z)。這個z值是參數值x和y的實驗結果。我期望將z值看作圍繞「+」號的彩色網格單元格。也就是說,網格中心應該是這些「+」號。自然地,網格單元將是不同大小的矩形。我希望我更清楚一點。

任何幫助將不勝感激。 艾哈邁德

+0

如果你用'splot'替換'plot'會有幫助嗎?在繪圖命令之前使用'set view map'。 – giordano

+0

@giordano,這改變了網格的大小,但這仍然不是我想要的,謝謝。 –

+0

您可以發表一個預期結果的例子嗎? – giordano

回答

1

如何

set pm3d map # depening on what you want 
splot "file.txt" w pm3d 

這個工作,你需要改變你的數據文件,並添加一些新行這樣

5 0 0.0531072048 
5 5 0.3476492247 
5 10 0.322184913 
5 20 0.2824368116 
5 50 0.2919607884 

10 0 0.0472727812 
10 5 0.3578374264 
10 10 0.3483726737 
10 20 0.3212322874 
10 50 0.3017652051 

20 0 0.0536101408 
20 5 0.3460970331 
20 10 0.3589370763 
20 20 0.412912733 
20 50 0.3907459465 

50 0 0.0497156879 
50 5 0.3611165857 
50 10 0.4046003446 
50 20 0.4620183753 
50 50 0.4156261444 

100 0 0.0483082089 
100 5 0.3815755779 
100 10 0.4031628253 
100 20 0.4537462156 
100 50 0.4231632329 

或者你可以改變你做出inlcude情節顏色根據z值。像這樣?

set xrange [-10:110] 
set yrange [-10:60] 
plot "file.txt" u 1:2:3 w p pt 7 ps 4 palette 

在這裏你也可以玩pt。

+0

謝謝@Arun,你的第一個解決方案几乎是我想要的(期望z點不在網格單元格的中心),但我希望能找到答案。 –

+1

您可能還想使用'set pm3d corners2color'來獲得正確的網格單元格顏色。 – Christoph