假设我有四个地块 h1-h4 并且想要链接它们所有的 x 轴。为此,我可以使用linkaxes([h1 h2 h3 h4], 'x')
. 但是,除此之外,我还想链接 h1 和 h3 的 y 轴(以及 h2 到 h4 的)。现在,当我使用linkaxes([h1 h3], 'y')
x 轴时,链接会丢失。如何同时实现两个链接?
2 回答
第 73 和 74 行linkaxes
是:
%# Remove any prior links to input handles
localRemoveLink(ax)
我建议您通过“另存为...”创建一个新函数,myLinkaxes
在其中注释掉第 74 行。更好的是,myLinkaxes
可以接受额外的输入参数“keep”,它用于第 73 行周围的 if 子句和74,即如果keep
为1,localRemoveLink
则不调用。
如果您分别链接 x 和 y 轴,这应该可以工作,但是如果您在'xy'
之前或之后使用参数,则可能会出现问题。
除了 Jonas 提供的解决方案之外,我认为还值得一提的是底层函数linkprop
,它能够链接图形对象看似任意的属性。
对于这个特定的问题,可以通过以下命令序列来实现所需的效果:
linkaxes([h1 h2 h3 h4], 'x');
lnkObj = linkprop([h1 h3], 'YLim');
出于演示目的(并且因为linkprop
对我来说是新的),这个例子非常简单。请参阅文档以获取更多详细信息和更复杂的示例。
这里可能还值得一提的是,它linkprop
返回一个链接对象,它(根据上一个链接)“必须存在于您希望发生属性链接的上下文中”;特别是,如果对链接对象的所有引用都消失了,链接似乎会停止,这就是将链接对象分配给上述变量的原因。此外,对创建的链接对象的引用对于更改相应图形对象如何链接的细节是必要的(即,哪些对象的属性由给定的链接对象链接);有关详细信息,请参阅更新链接对象(包括专门为执行此类更新而设计的函数列表)。