How to create an overall legend for subplots with the SUBAXIS function?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
The following example does not work:
x = -10:10;
city = {'London', 'Paris', 'Berlin','Madrid'};
season = {'summer','winter'};
colors = {'blue','red','black','magenta'};
for i = 1 : 4
subaxis(2,2,i);
y1 = (rand(1,21)-0.5)*20;
y2 = (rand(1,21)-0.5)*10;
hold on
p1(i) = plot(x, y1, 'Color', colors{i}, 'LineStyle','--');
p2(i) = plot(x, y2, 'Color', colors{i}, 'LineStyle','-');
hold off
p1(i).DisplayName = [city{i} ', ' season{1}];
p2(i).DisplayName = [city{i} ', ' season{2}];
end
lgd = legend;
lgd.Position = 'northeastoutside';
0 Commenti
Risposta accettata
Matt J
il 22 Apr 2022
Modificato: Matt J
il 22 Apr 2022
x = -10:10;
city = {'London', 'Paris', 'Berlin','Madrid'};
season = {'summer','winter'};
colors = {'blue','red','black','magenta'};
for i = 1 : 4
ax(i)=subaxis(2,2,i);
y1 = (rand(1,21)-0.5)*20;
y2 = (rand(1,21)-0.5)*10;
hold on
p1(i) = plot(x, y1, 'Color', colors{i}, 'LineStyle','--');
p2(i) = plot(x, y2, 'Color', colors{i}, 'LineStyle','-');
hold off
p1(i).DisplayName = [city{i} ', ' season{1}];
p2(i).DisplayName = [city{i} ', ' season{2}];
end
for i=1:4
ax(i).Position([1,3])=ax(i).Position([1,3])*0.8; %make room for legend
end
lgd = legend;
lgd.Position(1:2)=[0.75,0.4];
3 Commenti
Matt J
il 22 Apr 2022
I don't have a clear picture of what you're seeing. Maybe try clearing and/or resizing the figure.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Legend in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!