How to create an overall legend for subplots with the SUBAXIS function?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
Matt J
el 22 de Abr. de 2022
Editada: Matt J
el 22 de Abr. de 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 comentarios
Matt J
el 22 de Abr. de 2022
I don't have a clear picture of what you're seeing. Maybe try clearing and/or resizing the figure.
Más respuestas (0)
Ver también
Categorías
Más información sobre Legend en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!