Hi!
I am trying to plot my data with an area plot and I have several subplots for several countries. I just wanted to know how to set a common legend for all subplots describing each color of the plot. Thanks!

댓글 수: 2

Luna
Luna 2019년 1월 29일
What have you done so far?
figure(1)
for i=1:11
subplot(4,3,i)
area(dates,[global(:,i),regional(:,i),local(:,i)],'FaceColor','flat')
a11 = sprintf('%s',country{i});
title(a11);
legend({'World','Regional','Local'},'Location','SouthOutside');
end
But this is giving me a legend for each plot separately.

댓글을 달려면 로그인하십시오.

 채택된 답변

Star Strider
Star Strider 2019년 1월 29일

2 개 추천

Some version of this idea could work:
dates = 1:5; % Create Data
G = rand(5, 11); % Create Data
R = rand(5, 11); % Create Data
L = rand(5, 11); % Create Data
country = num2cell('A'+(0:10)); % Create Data
figure(1)
for i=1:12
if i < 12
subplot(4,3,i)
area(dates,[G(:,i),R(:,i),L(:,i)],'FaceColor','flat')
a11 = sprintf('%s',country{i});
title(a11);
elseif i == 12
subplot(4,3,i)
i = 11;
area(dates,[G(:,i),R(:,i),L(:,i)],'FaceColor','flat')
set(gca,'Position',[7.5 1.25 1 1]*0.1)
set(gca, 'Visible','off')
legend({'World','Regional','Local'},'Location','best');
end
end
Run this first. (I am using R2018b.)
Then experiment with your own data to get the result you want.

댓글 수: 2

Thank you for your response!
Here is a little tweaked version I opted for instead which is giving me the result I wanted with a row legend underneath the figure. Any suggestions on optimizing this line would still be appreciated.
clear all;
dates = 1:5; % Create Data
G = rand(5, 11); % Create Data
R = rand(5, 11); % Create Data
L = rand(5, 11); % Create Data
country = num2cell('A'+(0:10)); % Create Data
figure(1)
for i=1:11
subplot(4,4,i)
area(dates,[G(:,i),R(:,i),L(:,i)],'FaceColor','flat')
a11 = sprintf('%s',country{i});
title(a11);
end
legend=columnlegend(3,{'World','Regional','Country-specific'});
set(legend,'Position',[1.1 1.3 7 1]*0.1);
Star Strider
Star Strider 2019년 1월 29일
My pleasure.
I cannot run that because the ‘columnlegend’ variable does not exist in the code you posted. Also, ‘columnlegend’ is not a MATLAB function.
If my Answer helped you solve your problem, please Accept it!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Labels and Annotations에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2019년 1월 29일

댓글:

2019년 1월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by