我使用
创建了11个子图的图for stcount=1:11;
subplot(4,3,stcounter);
.....stuff to plot
end
由于所绘制的系列对于所有绘图都是相同的,我在末尾添加了图例,认为它会插入到最终的子绘图位置(4,3,12):
legend('series 1','series 2');
当然没有,因为我现在意识到它只与最后一个子图(4,3,11)相关联。我尝试手动移动它,最后的子图在我这样做时自行调整大小。 有谁知道为什么? 我试过保存图例命令的句柄:
h=legend('series 1','series 2');
然后尝试重新定位图例:
newPosition = [0.5 0.5 0.5 0.5];%arbitrary position for example
newUnits = 'normalized';
set(h,'Position', newPosition,'Units', newUnits);
但subplot(4,3,11)
不断改变大小。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您可以创建2组虚拟数据(NaN
)并在最后一个绘图中绘制它们,然后添加图例。
for stcount=1:11;
subplot(4,3,stcount);
plot(1:10, rand(1,10), 'r-', 1:10, rand(1,10), 'k--');
end
subplot(4,3,12)
plot(1:10, nan(1,10), 'r-', 1:10, nan(1,10), 'k--');
axis off
legend('series 1', 'series 2');
你继续调整子图#11的大小是因为这样,图例被创建为#11的子。当您尝试将其移出当前的绘图显示时,Matlab只需调整其大小以覆盖所有存在的区域。