如何从 MATLAB 中的图形中删除子对象?
How to remove a children object from a figure in MATLAB?
如何在 MATLAB 中从 figure
中删除 children
对象?
1- 假设我想从 figure
中 删除 (不是不可见的)axes
。怎么做?
2- 由于 axes
是 figure
的子代,是否可以使用相同的方法删除 figure
的任何类型的子代?
我在这里搜索了文档,但我不想让它不可见。我要删除它。
如果您已经有了轴手柄(来自 figure.Children
或其他),您可以简单地使用 delete
将其从图中删除,而不管它是否可见。
fig = figure();
hax = axes('Parent', fig);
% Delete the axes directly
delete(hax)
如果您无权访问句柄,可以使用 findobj
或 findall
获取它(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'));
您可以将任何 属性 / 值对传递给 findobj
和 findall
这样您甚至可以删除所有不可见的轴:
delete(findobj(gcf, 'type', 'axes', 'visible', 'off'))
如何在 MATLAB 中从 figure
中删除 children
对象?
1- 假设我想从 figure
中 删除 (不是不可见的)axes
。怎么做?
2- 由于 axes
是 figure
的子代,是否可以使用相同的方法删除 figure
的任何类型的子代?
我在这里搜索了文档,但我不想让它不可见。我要删除它。
如果您已经有了轴手柄(来自 figure.Children
或其他),您可以简单地使用 delete
将其从图中删除,而不管它是否可见。
fig = figure();
hax = axes('Parent', fig);
% Delete the axes directly
delete(hax)
如果您无权访问句柄,可以使用 findobj
或 findall
获取它(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'));
您可以将任何 属性 / 值对传递给 findobj
和 findall
这样您甚至可以删除所有不可见的轴:
delete(findobj(gcf, 'type', 'axes', 'visible', 'off'))