How to adjust the position of the legend elements?

I have a figure with several plots and a legend. Is it possible to manually change the arrangement of elements in the legend? For example, how could you make a two-column legend?

+9
source share
5 answers

Of course it is possible. See explanation here: http://undocumentedmatlab.com/blog/multi-column-grid-legend/

+6
source

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. The solution is simplified from the 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') 
+6
source

Besides the views mentioned by @gnovice, there is another file in MathWorks File Exchange that also creates multi-column legends

0
source

In 2018a, the legend has the NumColumns parameter; for example, if h is an array of descriptors of the constructed lines, and leg_names is an array of name cells for each row:

 hleg = legend(h, leg_names, 'FontSize', fontsize); set(hleg, 'NumColumns', 2); set(hleg, 'Location', 'south'); 
0
source

All Articles