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

时间:2014-08-06 10:13:31

标签: matlab plot multiple-axes

在Matlab中是否有办法将轴放在前面而不让Matlab隐式执行重绘(drawnow)?

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

但是:我需要将其中一个轴放在前面(在我的例子中,左轴是hAxL)。 所以我的代码中有这一行:axes(hAxL); 这很有效,但似乎Matlab不仅将轴线放在前面,而且还重新绘制了图形。

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

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

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

尝试

uistack(hAxL, 'top')