在 MATLAB 图中链接刻度

Linking ticks in a MATLAB plot

有没有对齐刻度标签的方法?

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

1
2
3
4
5
6
7
8
9
10
11
12
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 轴相同的刻度数以及它们之间的相同间距。我怎样才能做到这一点?


使用 plotyy 而不是 plot,它会为你处理这个:

1
plotyy(time, data1, time, data2);

您可以明确设置 y 轴范围和刻度位置:

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

这可以让您微调特定绘图的刻度位置。它降低了缩放和平移的功能,因为刻度线经常被遗忘。