2015-05-01 21 views
6

Mi piacerebbe definire un colore trasparente all'interno della mappa dei colori come faccio?Come definire l'elemento trasparente in colormap

Il motivo per cui ho bisogno di questo è che ho uno strato multiplo nel mio axes (prodotto sia da imagesc sia da plot). So che potrei semplicemente usare prima imagesc e poi plot ma voglio disegnare le linee dietro i valori diversi da zero della rappresentazione imagesc.

per colorare il bianco zeri che uso

jet = colormap('jet'); 
jet(1:2,:) = 1; 
colormap(jet); 

Ora vorrei fare bianco trasparente.

risposta

9

Il colormap non ha un quarto elemento per alpha, è solo RGB, quindi il modo in cui faccio questo tipo di cose è di fare una maschera del livello di trasparenza desiderato - binario o scala di grigi funzionerà - e quindi applicarlo all'immagine. Per fare questo è necessario memorizzare il manico dell'immagine

% make random image 
im = rand(100,100); 
% make example alphamask 
alphamask = im<0.3; 
% store handle 
hnd = imagesc(im); 
% apply mask 
set(hnd, 'AlphaData', alphamask); 
+0

Bella risposta. Stavo solo scrivendo lo stesso :-) –

+0

Molto bello, grazie. Ora devo solo capire come esportare questa bella figura in un 'pdf', perché' export_fig' non supporta 'alpha' per quanto ne so. –

+0

Grazie a @LuisMendo:) È il modo migliore! – xenoclast