【问题标题】:How to link each left and right y-axis in subplots with two y axes如何使用两个 y 轴链接子图中的每个左右 y 轴
【发布时间】:2018-10-07 21:26:46
【问题描述】:

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

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 轴链接在一起,但保持独立于它们的相对轴侧。任何帮助都会很棒。

【问题讨论】:

  • "如果您有三个轴,ax1、ax2 和 ax3,并且想要将它们链接在一起,请使用 [ax1, ax2, ax3] 作为第一个参数调用链接轴。将 ax1 链接到 ax2,然后链接 ax2通过单独调用链接轴到 ax3,“解除绑定”ax1-ax2 链接。链接轴并非设计为跨多个调用传递。您是否尝试过链接轴([ax(y1),ax(y2),ax(y3),...等])
  • 我不确定我是否明白你的意思,但这似乎没有效果。本质上,我有两个子图,我希望左侧尺寸轴限制为 [0 30],右侧为 [0 100]

标签: matlab plot axis handle figure


【解决方案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');

【讨论】:

  • 这并没有回答问题,即使用yyaxis,而不仅仅是链接不同子图中的任何y轴。
猜你喜欢
  • 2019-05-04
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-19
相关资源
最近更新 更多