如何 link yyaxis 子图中的两个 y 轴?
How to link both y-axes in a yyaxis subplot?
我试图在 yyaxis 子图中单独 link 两个 y 轴。到目前为止,我只是通过调用 linkaxes(g)
在给定的代码中 link 设置了正确的 y 轴,其中 g
是轴的句柄。我怎样才能让左侧的 y 轴 link 相互对齐?
谢谢。
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;
Axes
对象具有只读的 属性 YAxisLocation
,它在每次调用 yyaxis
时设置,并记住最后一个使用的轴。当您键入 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;
看看这次左上轴是如何link编辑到右下轴的。
如果你想 link 两个轴你只需要在你的代码末尾添加这行再次引用左轴:
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')
您应该在创建所有轴后添加它,这样所有的手柄都会被分配。
我试图在 yyaxis 子图中单独 link 两个 y 轴。到目前为止,我只是通过调用 linkaxes(g)
在给定的代码中 link 设置了正确的 y 轴,其中 g
是轴的句柄。我怎样才能让左侧的 y 轴 link 相互对齐?
谢谢。
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;
Axes
对象具有只读的 属性 YAxisLocation
,它在每次调用 yyaxis
时设置,并记住最后一个使用的轴。当您键入 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;
看看这次左上轴是如何link编辑到右下轴的。
如果你想 link 两个轴你只需要在你的代码末尾添加这行再次引用左轴:
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')
您应该在创建所有轴后添加它,这样所有的手柄都会被分配。