在MATLAB图中链接刻度

时间:2012-09-14 13:56:52

标签: matlab plot

是否有对齐刻度标签的方法?

我有一个有两个y轴的图形,其中值变化很大。我想对齐刻度标签,以便一个y标签上显示的每个值与相反ylabel上的值匹配。例如:

data1 = 1+ (12-1).*rand(365,1);
data2 = 1 + (700-1).*rand(365,1);
time = 1:365;
figure(1);
ax1 = axes('position',[0.05 0.5 0.22 0.37]);
plot(time,data1,'k','linewidth',1);
ylabel('label 1');
pos=double(get(ax1,'position'));
ax2=axes('position',pos,'color','none','YAxisLocation','right','xtick',[])
hold on;
plot(time,data2,'r','linewidth',1,'parent',ax2);
ylabel(ax2,'label 2');

这里我希望第二个y轴与第一个y轴具有相同的刻度数,以及它们之间的相同间距。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

使用plotyy代替plot,它会为您处理:

plotyy(time, data1, time, data2);

答案 1 :(得分:0)

您可以明确设置y轴限制和刻度位置:

ylim(ax1,[lowerBound upperBound])
set(ax1,'ytick',[tick1 tick2 tick3 tick4])

这可以让您微调特定情节的刻度位置。它使得缩放和平移功能较少,因为刻度通常会被遗忘。