我将澄清我在评论中写的想法。
首先,我们来获取一些数据:
x = 470:0.1:484;
z1 = cos(x)/2;
z2 = sin(x)/3;
z3 = cos(x+0.2)/2.3;
我将只绘制三个数据集,所有这些对于扩展到任意数量的数据集来说都是微不足道的。
想法1:多轴
这里的想法很简单,就是使用subplot
创建小型多重类型图:
ytick = [-0.5,0.0,0.5];
ylim = [-0.9,0.9]);
figure
h1 = subplot(3,1,1);
plot(x,z1);
set(h1,'ylim',ylim,'ytick',ytick);
title('z1')
h2 = subplot(3,1,2);
plot(x,z2);
set(h2,'ylim',ylim,'ytick',ytick);
title('z2')
h3 = subplot(3,1,3);
plot(x,z3);
set(h3,'ylim',ylim,'ytick',ytick);
title('z3')
请注意,例如,可以从顶部两个图中删除刻度标签,仅在底部一个图中保留标签。然后,您还可以移动轴,使它们更靠近(如果同一个图中有很多这些线,这可能是必要的):
set(h1,'xticklabel',[],'box','off')
set(h2,'xticklabel',[],'box','off')
set(h3,'box','off')
set(h1,'position',[0.13,0.71,0.8,0.24])
set(h2,'position',[0.13,0.41,0.8,0.24])
set(h3,'position',[0.13,0.11,0.8,0.24])
axes(h1)
title('')
ylabel('z1')
axes(h2)
title('')
ylabel('z2')
axes(h3)
title('')
ylabel('z3')
想法2:相同的轴,带有偏移量的绘图
这是更简单的方法,因为您只处理单个轴。 @Zizy Archer 已经展示了如果数据全部位于单个 2D 矩阵中,那么移动数据是多么容易Z
。在这里我只是绘制z1
, z2+2
, and z3+4
。根据您的喜好调整偏移量。接下来,我设置'ytick'
属性来创建单独图形的错觉,并设置'yticklabel'
属性,以便 y 轴上的数字与绘制的实际数据相匹配。最终结果与上面的多轴图类似,但它们都在单个轴中:
figure
plot(x,z1);
hold on
plot(x,z2+2);
plot(x,z3+4);
ytick = [-0.5,0.0,0.5];
set(gca,'ytick',[ytick,ytick+2,ytick+4]);
set(gca,'yticklabel',[ytick,ytick,ytick]);
text(484.5,0,'z1')
text(484.5,2,'z2')
text(484.5,4,'z3')