如何从 MATLAB 中的图形中删除子对象?

How to remove a children object from a figure in MATLAB?

如何在 MATLAB 中从 figure 中删除 children 对象?

1- 假设我想从 figure 删除 (不是不可见的)axes。怎么做?
2- 由于 axesfigure 的子代,是否可以使用相同的方法删除 figure 的任何类型的子代?

我在这里搜索了文档,但我不想让它不可见。我要删除它。

如果您已经有了轴手柄(来自 figure.Children 或其他),您可以简单地使用 delete 将其从图中删除,而不管它是否可见。

fig = figure();
hax = axes('Parent', fig);

% Delete the axes directly
delete(hax)

如果您无权访问句柄,可以使用 findobjfindall 获取它(findall 甚至可以使用 [=20= 找到 axes ] 转向 'off') 找到属于你的图形的轴,然后 delete 将其删除。

delete(findobj(gcf, 'type', 'axes'));
% delete(findall(gcf, 'type', 'axes'));

如果您的坐标轴具有特定的 Tag 属性,您可以进一步过滤

delete(findobj(gcf, 'type', 'axes', 'tag', 'mytag'));
% delete(findall(gcf, 'type', 'axes', 'tag', 'mytag'));

您可以将任何 属性 / 值对传递给 findobjfindall 这样您甚至可以删除所有不可见的轴:

delete(findobj(gcf, 'type', 'axes', 'visible', 'off'))