Я поясню идеи, которые я написал в комментарии.Во-первых, давайте получим некоторые данные:
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')
![enter image description here](https://i.stack.imgur.com/fLctq.png)
Примечаниечто возможно, например, удалить метки галочек с двух верхних графиков, оставив только метки на нижних.Затем вы также можете переместить оси так, чтобы они были ближе друг к другу (что может потребоваться, если на одном графике много линий):
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')
![enter image description here](https://i.stack.imgur.com/ktbmT.png)
Идея 2: те же оси, график со смещением
Это более простой подход, поскольку вы имеете дело только с одной осью.@Zizy Archer уже показал, как легко перемещать данные, если они все в одной 2D матрице Z
.Здесь я просто нанесу z1
, z2+2
и 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')
![enter image description here](https://i.stack.imgur.com/jDW7g.png)