Matlab 将图形设置为不是下一个绘图的目标
我正在制作一个带有一些图表的自定义进度监视器。我注意到Matlab的Matlab 将图形设置为不是下一个绘图的目标,matlab,matlab-figure,Matlab,Matlab Figure,我正在制作一个带有一些图表的自定义进度监视器。我注意到Matlab的waitbar创建了一个具有一些特殊属性的图形,因此如果 plot(rand(100,1)); wb = waitbar(0); plot(rand(100,1)); 第二个绘图最终替换第一个绘图,而不是在wb中是否可以设置一个属性,以便在创建进度监视器并随后绘图时,图形不会出现在我的图形中? 说清楚一点,我想 plot(rand(100,1)); temp = MyProgressBar(); plot(rand(100,1
waitbar
创建了一个具有一些特殊属性的图形,因此如果
plot(rand(100,1));
wb = waitbar(0);
plot(rand(100,1));
第二个绘图最终替换第一个绘图,而不是在wb
中是否可以设置一个属性,以便在创建进度监视器并随后绘图时,图形不会出现在我的图形中?
说清楚一点,我想
plot(rand(100,1));
temp = MyProgressBar();
plot(rand(100,1));
为第一个绘图创建一个地物,在第二行中创建一个不同的地物,然后在第三行中绘制一个新图形 为了保护进度条图形不受后续打印操作的影响,我将其轴的位置设置为
“off”
。这将防止它成为当前轴,从而防止后续打印命令修改或添加到其中。通常,对于独立图形/GUI来说,以这种方式关闭所有对象(图形、uicontrols等)的句柄可见性是一种很好的做法,以防止它们被外部代码修改。这几乎可以肯定是代码中所做的
另一方面,最好的做法是通过以下方式将绘图指向给定的轴。如果要将新绘图添加到现有绘图中,还必须确保首先使用命令之类的方法。假设您希望两个图显示在同一轴上,我将重新编写您的示例:
plot(rand(100,1)); % Creates new figure and axes
hAxes = gca; % Get the axes handle
hold on; % Allow subsequent plots to be added
temp = MyProgressBar();
plot(hAxes, rand(100,1)); % Will be added to the first plot axes
使用
figure()代码>在第二次调用plot
…之前?不,我正在寻找temp
的属性,这样它就不会包含默认轴。您的问题是waitbar
轴会变成默认轴?有趣的是,在R2016b中,绘图不会转到waitbar图,这是因为默认情况下,waitbar图形是在R2016b中创建的,其'Handlvisibility'
属性设置为'callback'
,而不是'on'
(请参阅)