How can I plot a legend in a bar plot in Matlab? Here is the code:
Y = [1.5056
0.72983
3.4530
3.2900
1.4839
12.9 ];
n = length(Y);
h = bar(Y);
colormap(summer(n)
Instead of legend, you can solve it using the tick labels for example:
set(gca,'xticklabel', l)
This will label each bar. If you want to use legend
you need to have a matrix data, so the bar plot will show several bars per entry. For example
Y=rand(10,6)
h = bar(Y);
colormap(summer(n));
grid on
l = cell(1,6);
l{1}='L'; l{2}='B'; l{3}='R'; l{4}='P'; l{5}='h'; l{6}='Ri';
legend(h,l);
Or, you can use different bar()
calls in this way:
h = bar(diag(Y));
But then you'll get a displacement per each bar:
So, the only way really to do that using legend
is to plot each bar
seperatly, similar to what is discussed here.
Further to bla's answer, you can use
h = bar(diag(Y),'stacked');
if you want to avoid the displacement.