将轴放在前面而不重新绘制图形?

use*_*990 5 matlab plot multiple-axes

有没有一种方法在Matlab中将轴放在前面而不让Matlab drawnow隐式执行redraw()?

我的问题的背景:我正在准备一个包含多个子图的大图.在其中一些我有2个轴叠加,因为我想在2个不同的y尺度上看到相同的数据.在玩完轴设置之后,我终于让这个数字看起来像我预期的那样.

但是:我需要将其中一个轴带到前面(在我的例子中,左轴是hAxL).所以我在我的代码中有这一行:axes(hAxL); 这是有效的,但是,似乎Matlab不仅将轴放在前面,而且还重绘了数字.

这是一个遗憾,因为我正在准备整个数字'visible','off'以加速它.这隐含了drawnow我的想法并使图形弹出几次,这很烦人并且需要更长的代码执行...

我已经尝试过了这个:set(gcf ,'CurrentAxes',hAxL)但是它只会产生hAxL当前的轴并且不会将它带到前面.关于如何解决这个问题的任何想法?

Set*_*h_P 5

这也是一个非常简单的解决方案,应该适用于这种情况.

set(hAxL ,'Layer', 'Top')
Run Code Online (Sandbox Code Playgroud)


zin*_*aai 4

也许 uistack 可以是一个解决方案。

尝试

uistack(hAxL, 'top')
Run Code Online (Sandbox Code Playgroud)