我在同一个地块上有几个轴,所有轴都用子图分开:
%% Stage 1
figure(13);
set(gcf,'Position',[60 30 1400 720]);
ha(1)=subplot(5,3,[1 2 4 5 7 8]); % Top-left
ha(2)=subplot(5,3,[3 6 9]); % Top-right
ha(3)=subplot(5,3,[10 11]); % Middle-left
ha(4)=subplot(5,3,[12]); % Middle-right
ha(5)=subplot(5,3,[13 14]); % Bottom-left
ha(6)=subplot(5,3,[15]); % Bottom-right
然后我立即使用每个子图,即第四个中右子图:
%% Stage 2.4
axes(ha(4)); plot(Mi(4).t,Mi(4).x);
第1阶段看起来像这样(见第一张附图)。
阶段2.4看起来像这样(见第二张附图),从而破坏了所有的演示,改变了第四和第六子画面轴的外观。为什么会这样?我该怎么解决这个问题??? !! ...
所有x范围相等(日期)。所有同样排列的y范围-i.e. Top with Top,Middle with Middle-相等(缩放值)。请注意,此排除会导致此顺序失效。
提前致谢,...
阶段1具有正确的子图外观:
阶段2 4在4和6上出现错误的子画面外观:
编辑No.1: 如果在绘图前调整轴:
答案 0 :(得分:1)
这确实非常令人沮丧。它似乎只调整子图的大小,如果它是一个不在下排的1x1子图,(即subplot(3,1,1)
,调整大小以适应x轴幅度标签(10 ^ 7? - 如你所示x-label!),但不是subplot(3,1,1:2)
或subplot(3,1,3)
)。例如,考虑以下代码位,使用示例数据:
Mi(4).t = 1:100:1e7;
Mi(4).x = randn(size(Mi(4).t));
选项#1(使用get
和set
):
figure(14);
set(gcf,'Position',[60 30 1400 720]);
ha(1)=subplot(5,3,[1 2 4 5 7 8]); % Top-left
ha(2)=subplot(5,3,[3 6 9]); % Top-right
ha(3)=subplot(5,3,[10 11]); % Middle-left
ha(4)=subplot(5,3,[12]); % Middle-right
ha(5)=subplot(5,3,[13 14]); % Bottom-left
ha(6)=subplot(5,3,[15]); % Bottom-right
hapos=get(ha,'Position');
axes(ha(4)); plot(Mi(4).t,Mi(4).x);
for sp = 1:length(hapos)
set(ha(sp),'Position',hapos{sp});
end
选项#2(不使用单个子图来支持我之前的观点):
figure(15);
set(gcf,'Position',[60 30 1400 720]);
ha(1)=subplot(10,3,[1 2 4 5 7 8 10 11 13 14 16 17]); % Top-left
ha(2)=subplot(10,3,[3 6 9 12 15 18]); % Top-right
ha(3)=subplot(10,3,[19 20 22 23]); % Middle-left
ha(4)=subplot(10,3,[21 24]); % Middle-right
ha(5)=subplot(10,3,[25 26 28 29]); % Bottom-left
ha(6)=subplot(10,3,[27 30]); % Bottom-right
axes(ha(4)); plot(Mi(4).t,Mi(4).x);
您可能希望实际调整子图位置,以便为x轴幅度标签腾出空间。