我正在尝试在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;
答案 0 :(得分:2)
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;
看看这次是如何将左上轴链接到右下轴。
如果要链接两个轴,只需在代码末尾添加以下行以再次引用左轴:
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')
您应该在创建所有轴之后添加此控件,以便所有手柄都已分配。