I am trying to create a figure of subplots. I don't want the subplots to have legends but instead the figure to have an overall legend.
I read that it is possible either by adding a legend only to the last subplot and adjusting its location in the figure through the position
feature of legend
or by using one subplot figure position (e.g. subplot(2,3,5.5)
only for displaying the legend). I would prefer the second option although I haven't succeeded up until now. Any help?
Here is my code:
SLS=figure();
hold on
subplot(3,2,1);
plot(t,u{1},t,u{2},t,u{3},t,u{4},t,u{5},t,u{6});
title('SLS Levels');
subplot(3,2,2);
plot(t,log_u{1},t,log_u{2},t,log_u{3},t,log_u{4},t,log_u{5},t,log_u{6});
title('SLS Logarithms');
subplot(3,2,3);
plot(t,I_u{1},t,I_u{2},t,I_u{3},t,I_u{4},t,I_u{5},t,I_u{6});
title('SLS Levels with Intercept');
subplot(3,2,4);
plot(t,log_I_u{1},t,log_I_u{2},t,log_I_u{3},t,log_I_u{4},t,log_I_u{5},t,log_I_u{6});
title('SLS Log. with Intercept');
subplot(3,2,5.5);
legend('GDP', 'C', 'I', 'G', 'Imp.', 'Exp.');
axis off
Code:
% Plotting some random data and storing their handles
subplot(3,2,1); h1 = plot(randperm(10),randperm(10),'ko-');
subplot(3,2,2); h2 = plot(randperm(10),randperm(10),'g+-');
subplot(3,2,3); h3 = plot(randperm(10),randperm(10),'md-');
subplot(3,2,4); h4 = plot(randperm(10),randperm(10),'rv-.');
hL = subplot(3,2,5.5);
poshL = get(hL,'position'); % Getting its position
lgd = legend(hL,[h1;h2;h3;h4],'RandomPlot1','RandomPlot2','RandomPlot3','RandomPlot4');
set(lgd,'position',poshL); % Adjusting legend's position
axis(hL,'off'); % Turning its axis off
Output: