【问题标题】:How to link both y-axes in a yyaxis subplot?如何在 yyaxis 子图中链接两个 y 轴?
【发布时间】:2019-05-04 23:42:16
【问题描述】:

我正在尝试单独链接 yyaxis 子图中的两个 y 轴。到目前为止,我只是通过调用linkaxes(g) 来链接给定代码中的正确 y 轴,其中g 是轴句柄。我怎样才能让左侧 y 轴相互链接?

谢谢。

g(1) = subplot(2,1,1);
hold on;
yyaxis left;
plot(rand(10,1));
yyaxis right;
plot(2*rand(10,1));
hold off;

g(2) = subplot(2,1,2);
hold on;
yyaxis left;
plot(2*rand(10,1));
yyaxis right;
linkaxes(g);
plot(rand(10,1));
hold off;

【问题讨论】:

    标签: matlab matlab-figure subplot


    【解决方案1】:

    Axes 对象具有在每次调用 yyaxis 时设置的只读属性 YAxisLocation,并记住最后一个正在使用的轴。当您键入linkaxes(g) 时,它只是采用右轴,因为这是您设置的最后一个轴。要查看您可以为第一个轴运行此代码:

    g(1) = subplot(2,1,1);
    hold on;
    yyaxis right;
    plot(2*rand(10,1));
    yyaxis left;
    plot(rand(10,1));
    hold off;
    

    看看这次左上轴是如何链接到右下轴的。

    如果您想链接两个轴,您只需在代码末尾添加以下行以再次引用左轴:

    yyaxis(g(1),'left')
    yyaxis(g(2),'left')
    linkaxes(g);
    

    或者,您可以抓住数字标尺的句柄,并使用linkprop(无需调用linkaxes):

    Y = get(g,'YAxis');
    Y = [Y{:}];
    linkprop(Y(1,:),'Limits')
    linkprop(Y(2,:),'Limits')
    

    您应该在创建所有轴之后添加它,这样所有的句柄都将被分配。

    【讨论】:

      猜你喜欢
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      相关资源
      最近更新 更多