绘图时不稳定的子图轴外观

时间:2014-09-16 02:59:15

标签: matlab plot figure subplot

我在同一个地块上有几个轴,所有轴都用子图分开:

%% 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具有正确的子图外观: Stage 1 with correct subplot appearance

阶段2 4在4和6上出现错误的子画面外观: Stage 2 4 with wrong subplot appearance

编辑No.1: 如果在绘图前调整轴: Trial with wrong subplot appearance

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(使用getset):

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轴幅度标签腾出空间。