将坐标轴移到前面而不重新绘制图形



在Matlab中是否有一种方法可以将轴带到前面,而无需Matlab隐式地执行重绘(drawnow) ?

我的问题背景:我正在准备一个带有几个子图的大图。在某些情况下,我有两个轴重叠,因为我想在两个不同的y尺度上看到相同的数据。在摆弄了坐标轴设置之后,我终于得到了像我预期的那样的图形。

但是:我需要把其中一个轴带到前面(在我的情况下,左轴hAxL)。代码中有这一行:axes(hAxL);这是有效的,但是,Matlab似乎不仅将轴带到前面,而且还重新绘制了图形。

这很遗憾,因为我正在用'visible','off'准备整个数字来加速它。隐式的drawnow破坏了我的想法,使图形弹出几次,这很烦人,需要更长的代码来执行…

我已经尝试过这个:set(gcf ,'CurrentAxes',hAxL),但它只使hAxL当前轴,并没有把它带到前面。知道怎么解决这个问题吗?

对于这种情况,这也是一个非常简单的解决方案。

set(hAxL ,'Layer', 'Top')

也许istack是一个解决方案。

uistack(hAxL, 'top')