Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to add legend in imagesc plot in matlab

Tags:

legend

matlab

I have the following code, creating figures which I print to files:

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);

I want to add legend to the right of the colorbar, and I tried doing so using the legend function, but it is not shown... using the text function places it outside the printanle area. Can anyone help ? Thanks,,,

like image 802
user1748101 Avatar asked Oct 15 '12 19:10

user1748101


1 Answers

A possible workaround (if I understood you correctly):

 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

like image 89
bla Avatar answered Nov 04 '22 01:11

bla