图中重叠的多个轴MATLAB GUI

时间:2015-04-06 06:54:02

标签: matlab user-interface plot axes

我的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(),我无法绘制以前存在的图。

1 个答案:

答案 0 :(得分:1)

以下是再现问题的最小例子:

ezplot('x^2');
set(gca, 'Visible', 'off');

实际上,这是一种正常行为。根据文件:

  

axis对象的Visible属性不会影响子对象的子对象   轴。

要使轴及其所有子元素都不可见,您可以将findallarrayfun结合使用。只需替换:

set(gca,'Visible','off');

arrayfun(@(x) set(x, 'Visible', 'off'), findall(gca));

在您的例子中,您必须将gca替换为S.axes1S.axes2

最佳,