2012-07-27 151 views
0

請在下面找到我用Matlab生成的HeatMap的副本。我有兩個 問題,我想解決:Matlab:HeatMap的一些問題

1)正如你所看到的,HeatMap只有三個不同的值,它顯示。

Red = 500 
Green = 0 
Black = 250 

Unfortuantely時,彩條顯示大約10不同的值,即使對於 未在熱圖中使用的顏色。我看不出如何改變這種狀況。有誰知道 我如何定製這個Colorbar/label,以便它覆蓋實際使用的三個值?

2)當我試圖繪製該熱圖,我得到了以下錯誤消息:

hmo = HeatMap(data) 
HeatMap object with 20 rows and 20 columns. 
plot(hmo); 
Error using ==> figure 
Invalid property found. 
Object Name : figure 
Property Name : 'PagePosition'. 
Error in ==> HeatMap.plot at 42 
hFig = figure('Renderer',  'ZBuffer',... 

你的幫助非常感謝! 帕特里克

Matlab HeatMap

+1

「HeatMap」的代碼在哪裏?這個問題似乎在那裏。另外,它是matlab中的「PaperPosition」,用於定位不是「PagePosition」的圖形。 – 2012-07-27 15:07:16

回答

0

HeatMap功能不看是一個內置的功能,所以就很難說什麼是有事情。但是,您的彩條問題更容易解決。

問題是你的色彩地圖不僅由這三種顏色組成。 下面的這個例子,如果你需要,應該足以向你展示如何手動改變它。

% Create some sample data and plot it 
p = peaks; 
surf(p) 
colorbar 

這將顯示圖:

Figure using default colormap

現在,如果你想使你的定製colormap,只顯示綠色,黑色和紅色(在這個底部到頂部的順序):

yourColorMap = [0 1 0; 0 0 0; 1 0 0]; % green, black red RGB code. One per row 
colormap(yourColorMap) 

會讓你的形象是這樣的:

Figure with your customised colormap

1

documentation,你可以告訴HeatMap使用自定義顏色表:

HeatMap(Data, ...'Colormap', ColormapValue, ...) 

你只想要3值,因此顏色表3行:

cmap = [0 1 0; %# green 
     0 0 0; %# black 
     1 0 0;]%# red 

然後,當您撥打HeatMap時,請包含名稱 - 值對;

hmo = HeatMap(data,'colormap',cmap); 

注意:您可能需要將clim軸屬性手動設置爲[0 500]