如何在具有两个y轴的子图中链接每个左右y轴

时间:2018-04-27 05:00:42

标签: matlab plot axis handle figure

我有一个包含两个子图的图。它们的轴存储如下:

for i = 1:n
    ax(i) = subplot(n,1,i);
end

在绘图之后,我试图将轴连接在一起。当我这样做时:

yyaxis right; linkaxes(ax);
yyaxis left;  linkaxes(ax);

我得到右侧轴匹配,但是第一个图的左侧链接到与两个右侧轴相同的比例,而不是另一个左侧轴。

我也尝试过:

yyaxis right; linkprop(ax, 'Ylim')
yyaxis left;  linkprop(ax, 'Ylim')

导致同样的问题。我试图找到一种简单的方法让左侧y轴连接在一起,右侧y轴连接在一起,但保持独立于它们的相对轴侧。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

“ linkprop”通过多次调用保存属性(只要您定义变量“ link1,link2 ...”)。例如,我独立地链接了顶行的Y轴和底行的Y轴。在第三个调用中,我能够将所有X轴链接在一起,并保持Y轴之间的独立链接。

只需确保将每个linkprop调用保存到不同的变量

  ax{1,1} = subplot(2,2,1);
  ax{1,2} = subplot(2,2,2);
  ax{2,1} = subplot(2,2,3);
  ax{2,2} = subplot(2,2,4);

  link1 = linkprop([ax{1,1},ax{1,2}], 'YLim');
  link2 = linkprop([ax{2,1},ax{2,2}], 'YLim');
  link3 = linkprop([ax{1,1},ax{1,2},ax{2,1},ax{2,2}],'XLim');