I have a figure with several plots and a legend. Is it possible to change the arrangement of the elements in the legend manually? For example, how could you make a two-column legend?
To move the legend to a different tile, set the Layout property of the legend. Determined by Position property. Use the Position property to specify a custom location.
You can place the legend literally anywhere. To put it around the chart, use the legend. position option and specify top , right , bottom , or left . To put it inside the plot area, specify a vector of length 2, both values going between 0 and 1 and giving the x and y coordinates.
Changing the order of legend labels can be achieved by reordering the factor levels of the Species variable mapped to the color aesthetic.
Of course this is possible. See an explanation here: http://undocumentedmatlab.com/blog/multi-column-grid-legend/
To make a two-column legend, the general consensus seems to be that you need to create two separate legends and manually place them side by side. Solution simplified from discussion here.
x = 1:10;
y1 = rand(1, 10);
y2 = rand(1, 10);
h1 = plot(x, y1, '-');
hold on
h2 = plot(x, y2, '-.r');
ah1 = gca;
ah2 = axes('position',get(gca,'position'), 'visible','off');
legend(ah1, h1, 'Location', [0.5 0.85 0.15 0.05], 'y1')
legend(ah2, h2, 'Location', [0.7 0.85 0.15 0.05], 'y2')
There are two submissions on the MathWorks File Exchange which create multi-column legends for you:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With