2012-10-15 5 views
6

ho il seguente codice, creando figure che ho stampati su file:Come aggiungere leggenda nella trama imagesc in MATLAB

f=figure; 
set(gcf,'Visible','off'); 
imagesc (exp_genes_sorted_cut); 
h=colorbar; 
set(gcf,'Colormap',mycmap); 

set(gca, 'xtick', 1:num_tissues_displayed); 
set(gca, 'xticklabel', tissues, 'fontsize', 14); 
ylabel('Genes', 'Fontsize', 18); 
xlabel('Tissues', 'Fontsize', 18); 

voglio aggiungere leggenda alla destra del colorbar, e ho provato a fare così utilizzando la funzione legenda, ma non viene mostrato ... utilizzando la funzione di testo lo colloca al di fuori dell'area del printanle. Qualcuno può aiutare? Grazie ,,,

+1

Il 'colorbar' è tecnicamente la tua leggenda di un'immagine (vale a dire dell'intensità/gamma di colori che punta a pixel specifici). Se vuoi descrivere ulteriormente, puoi usare 'title()' per posizionarlo sopra la tua immagine. – gevang

+0

Cosa vuoi che la legenda mostri? È possibile creare elementi di stampa fittizi e quindi usarli per una legenda. – dvreed77

risposta

7

Una possibile soluzione (se ho capito bene):

N=4;             % # of data types, hence legend entries 
Data = randi(N,30,30);         % generate fake data 
imagesc(Data)           % image it 
cmap = jet(N);           % assigen colormap 
colormap(cmap) 
hold on 
L = line(ones(N),ones(N), 'LineWidth',2);    % generate line 
set(L,{'color'},mat2cell(cmap,ones(1,N),3));   % set the colors according to cmap 
legend('A','B','C','D')         % add as many legend entries as data 

enter image description here