如何使 GUIDE 创建的图形内的轴成为当前轴?

How to make an axes current which is inside a figure created by GUIDE?

我使用 GUIDE 创建了一个银行图形,并在其中放置了一个轴对象并保存了该图形。现在我想加载图形并将其轴设置为当前轴对象。这是我的代码:

close all; clear all; clc;
fh = openfig('test.fig');
ah = findobj(fh, 'tag', 'axes1');
figure(fh);
axes(ah);
plot(rand(10, 1));

但是plot创建了一个新图形并在其中绘图!我错过了什么吗?

我知道我可以用 plot(ah, ...) 解决它,但我想使 gca 到 return 这个新轴。我有很多绘图代码想在这个新轴上绘制。

默认情况下,HandleVisibility 个 GUIDE 图形设置为不自动检测。例如,如果您加载图形然后调用 gcf,您还将创建一个新图形。

要将绘图放置在坐标轴内,您可以将坐标轴 显式指定 作为 plot 命令的父级。

plot(rand(10, 1), 'Parent', ah)

或者,您可以指定图形的 HandleVisibility'on'。然后plot就能找到了。这可以通过使用 GUIDE 中的 属性 编辑器设置 HandleVisibility 的值或调用 set 函数来完成:

set(fh, 'HandleVisibility', 'on')

我推荐第一个选项,因为显式指定父坐标轴总是比隐式指定更好。