我的GUI中有2个轴重叠(它们具有相同的位置)。 2个单独的单选按钮触发每个。当一个被触发时,另一个应被抑制。我会在每个中显示不同的情节。但是,当我使用'可见'时,只有轴不是图。我该如何解决这个问题?
value(1) = get(S.rbh_1,'value'); value(2) = get(S.rbh_2,'value');
if value(1) == 1
set(S.rbh_2,'value',0);
set(S.axes1,'Visible','on');
set(S.axes2,'Visible','off');
elseif value(2) == 1
set(S.rbh_1,'value',0);
set(S.axes1,'Visible','off');
%cla(S.axes1);
set(S.axes2,'Visible','on');
end
如果我使用cla(),我无法绘制以前存在的图。
答案 0 :(得分:1)
以下是再现问题的最小例子:
ezplot('x^2');
set(gca, 'Visible', 'off');
实际上,这是一种正常行为。根据文件:
axis对象的Visible属性不会影响子对象的子对象 轴。
要使轴及其所有子元素都不可见,您可以将findall
与arrayfun
结合使用。只需替换:
set(gca,'Visible','off');
与
arrayfun(@(x) set(x, 'Visible', 'off'), findall(gca));
在您的例子中,您必须将gca
替换为S.axes1
或S.axes2
。
最佳,