split legend into 2 rows and 3 columns

40 views (last 30 days)
I have 6 legend items and I want to split the legend as 2*3. I am using Matlab 2016a

Accepted Answer

Ameer Hamza
Ameer Hamza on 6 Mar 2020
On newer versions of MATLAB, you can set the NumColumns property of legends to get a 2x3 legend. However, in older versions, you can get two legends by adding a hidden axes. For example, the following code shows one of the ways.
ax = axes();
hold(ax);
ax2 = axes('Visible', 'off');
hold(ax2);
x = 1:10;
y = 1:10;
plot(ax, x,y, x,y+1, x,y+2);
plot(ax2, x,y+3, x,y+4, x,y+5);
% adjust the axis of hidden and visible axes to have same limits
ax.YLim(1) = min(ax.YLim(1), ax2.YLim(1));
ax2.YLim(1) = min(ax.YLim(1), ax2.YLim(1));
ax.YLim(2) = max(ax.YLim(2), ax2.YLim(2));
ax2.YLim(2) = max(ax.YLim(2), ax2.YLim(2));
legend(ax, {'plot1', 'plot2', 'plot3'}, 'Position', [0.15 0.80 0.10 0.01]);
legend(ax2, {'plot4', 'plot5', 'plot6'}, 'Position', [0.30 0.80 0.10 0.01]);

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!