2016-11-03 234 views
0

我使用pcolor繪製矩陣X,尺寸(286,64)和值從0到20不等。如何將特定顏色設置爲特定範圍,即0-0.5,白色; 0.5-1.0,紅色; 1.0-2.0,橙色,... 15-20,藍色?每次我嘗試使用輪廓和pcolor來完成此操作時,顏色條範圍都不會與刻度線對齊,並且刻度標記會隨着繪圖而變化,即使我在代碼中硬連線它們也是如此。PColor問題 - 如何爲特定範圍設置特定顏色

謝謝?

+0

你能共享一個最小的工作的例子嗎? – willpower2727

回答

0

要將顏色指定爲不等距離的範圍,可以手動編輯顏色映射,或將矩陣轉換爲範圍矩陣的索引,然後定義自己的顏色映射。下面是一個簡單的例子:

X = randi([0 20],28,64); 
C = zeros(size(X)); % the ranges matrix 
color_shift = [0 5 11 12]; % the values where the color changes 
for k = 1:numel(color_shift) 
    C(X>color_shift(k)) = k; 
end 
% your colormap 
cmap = [0.8 0.2 0 % 0 - 5 
     1 0.5 0 % 5 - 11 
     0.5 0 0.5 % 11 - 12 
     0.3 0.3 1]; % 12 - 20 
pcolor(C) 
colormap(cmap) 
ch = colorbar; 
% setting the ticks on the colorbar: 
ch.Ticks = 0:numel(color_shift); 
ch.TickLabels = [color_shift max(X(:))]; 

,你會得到這樣的財產以後: custom colormap

相關問題