2016-11-03 9 views
0

Ich verwende Pcolor, um Matrix X, die Abmessungen (286,64) und Werte von 0 bis 20 hat. Wie stelle ich bestimmte Farben auf bestimmte Bereiche, dh 0-0,5, weiß; 0,5-1,0, rot; 1.0-2.0, orange, ... 15-20, blau? Jedes Mal, wenn ich das mit Konturen und Pixeln versuche, passen die Farbbalkenbereiche nicht zu den Teilstrichen, und die Teilstriche ändern sich von Teil zu Teil, obwohl ich sie im Code fest verdrahte.PColor Problem - wie bestimmte Farben für bestimmte Bereiche eingestellt werden

Danke?

+0

Können Sie eine minimale Arbeitsbeispiel teilen? – willpower2727

Antwort

0

Um Farben für Bereiche festzulegen, die nicht gleich weit entfernt sind, können Sie entweder die Colormap manuell bearbeiten oder Ihre Matrix in einen Index der Bereichsmatrix konvertieren und dann Ihre eigene Colormap definieren. Hier ist ein einfaches Beispiel:

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(:))]; 

und Sie werden ungefähr wie folgt erhalten: custom colormap

Verwandte Themen