2012-10-04 11 views
5

Possiedo un ampio intervallo di valori e mentre il grafico mostra una dispersione (x, y, z), la barra dei colori che mostra l'asse z mostra un ampio intervallo di valori, ora non sono interessato ai valori di intervallo inferiore. Esiste un metodo per modificare l'intervallo nella barra dei colori. Ho la seguente parte del mio codice da tracciare, intendo anche tracciare la trama del log. Per es. Voglio impostare l'intervallo nel mio diagramma di registro su 14 sul valore massimo.come impostare manualmente l'intervallo nella barra dei colori?

Desidero che alcuni valori non vengano visualizzati affatto. in modo che la barra dei colori abbia un intervallo limitato, diciamo dal 14 al massimo. Al momento mostra dal 9 al massimo nella trama del tronco.

scatter(x(1:end-1), y(1:end-1), 5, gnd); 

title('G plot (m^-^2)'); 

colorbar('eastoutside'); 

xlabel(' X-axis (microns)'); 

ylabel('Y-axis (microns)'); 

figure; 

log_g=log10(gnd); 

scatter(x(1:end-1), y(1:end-1), 5,log_g); 

colorbar('eastoutside'); 

xlabel(' X-axis (microns)'); 

ylabel('Y-axis (microns)'); 

title('G Density, log plot (m^-^2)'); 
+0

Non è molto chiaro ciò che si desidera. Vuoi cambiare i colori nella barra dei colori, o vuoi evitare che alcuni valori vengano visualizzati? – Junuxx

+0

Desidero che alcuni valori non vengano visualizzati affatto. in modo che la barra dei colori abbia un intervallo limitato, diciamo dal 14 al massimo. Al momento mostra dal 9 al massimo nella trama del tronco. – rcty

+0

perché non rimuovere solo i punti che non vuoi mostrare dalla trama? – slayton

risposta

10

Credo che caxis sia il comando che stai cercando. Utilizzo:

caxis([minValue maxValue]) 

Utilizzando caxis simili, tutti i valori esterni all'intervallo [minValue maxValue] sarà colorato con il valore più basso o più alto nella mappa colori, rispettivamente.

Dal colorbar e gli amici utilizzano colormap, è necessario regolare la mappa colori corrente se si desidera regolare il numero di colori utilizzati. Fate questo in questo modo:

%# get current colormap 
map = colormap; 

%# adjust for number of colors you want 
rows = uint16(linspace(1, size(map,1), NUM_COLORS)) ; 
map = map(rows, :); 

%# and apply the new colormap 
colormap(map); 

Naturalmente, combinando questo con caxis è il più potente.

Se non si desidera visualizzare alcuni valori al di fuori della gamma, che non è un lavoro per colorbar o caxis, che sta a voi - dovrete modificare i dati che sono tracciati in modo che tutti i valori si don 't desidera che il grafico sia NaN. In questo modo, Matlab capirà che non vuoi stampare questi dati:

data(indices_to_data_not_to_plot) = NaN; 
surf(x,y,data); %# or whatever you're using 
+0

sì, l'avevo usato, ma voglio che la barra dei colori mostri solo 5 valori come caxis ([14 16]) Voglio solo 14 14.5 15 15.5 16 valori per mostrare – rcty

+0

@rcty: Ah, così. Dovrai quindi definire una mappa colori personalizzata, fammi modificare. –

0

Che ne dici di questo?

% don’t know why, but apparently your x and y are one value too long? 
x = x(1:end-1); y = y(1:end-1); 

% only plot values of 14 or higher 
scatter(x(gnd>=14), y(gnd>=14), 5, gnd(gnd>=14); 
+0

in realtà è l'asse z (gnd) che è mostrato sulla barra di colore ... ma ho provato anche il metodo ur, non ha funzionato – rcty

+0

Sì, questo seleziona i valori xey dove gnd è maggiore o uguale a 14. Tutti i punti dati con un gnd <14 sono omessi. Vedo che ho dimenticato di applicare lo stesso filtro per GND però. Corretto. – Junuxx

0

Prova questo:

cmap = colormap; % get current colormap 
cmap=cmap([min max],:); % set your range here 
colormap(cmap); % apply new colormap 
colorbar(); 
Problemi correlati