2013-05-21 60 views
1

我想用gnuplot繪製一個輪廓圖,我想指出一些特殊顏色的特殊特徵。gnuplot中的對稱軸

我通過

set pm3d map 
set palette defined (-1 "red", -0.1 "red", 0 "white", 0.1 "blue", 1 "blue") 

這導致在具有與從紅色到白色的漸變藍色的小區域顏色梯度定義輪廓圖和剩餘部分爲紅色負數和藍色爲正數字。

我現在的問題是,我想將gnuplot自動設置爲z軸的對稱縮放比例。但是,通過指定splot [][][-200:200] 'data' u 1:2:3和具有來自例如-300到100 gnuplot會自動重新調整爲[-200:100],這會導致我的色階錯位(白色區域現在約爲-50)。

有沒有辦法強制一個zrange或得到一個自動對稱的縮放軸?

回答

3

我不知道我理解的問題,但你有沒有考慮:

set cbrange [-200:200] 

從文檔:

的`設置cbrange `命令設置值範圍,這些值的顏色範圍是使用 當前的`調色板`按樣式`使用pm3d`,`使用圖像`和使用調色板。 顏色範圍外的值使用最接近的極端的顏色。

+0

這正是我需要的。謝謝! – Stefan

1

要強制z範圍,你的繪圖命令之前嘗試

set zr [-200:200] 

。要自動縮放軸,你可以使用stats來做點什麼。主要技巧是要記住,顏色欄是相對單位。像這樣(未經):

datafile = 'data.dat' 

stats datafile u 3 nooutput 

# assume you want some data positive and some negative 
if (stats_max*stats_min > 0) { 
print 'WARNING: all data has same sign. Color bars may be weird.' 
} 

z0 = -1*min(abs(0.1*stats_min),abs(0.1*stats_max)) 
z1 = 0.0 
z2 = -1*z0 

set palette defined (stats_min "red", z0 "red", z1 "white", 
        z2 "blue", stats_max "blue") 
+0

命令'set zr [-200:200]'不起作用。你可以用'set pm3d map'然後'splot [-10:10] [ - 10:10] [] 5 + 10 * sin(x)'來試試。這總是會導致從-6到16的範圍。另一種方法看起來非常有前景。我會在稍後嘗試。 – Stefan