Plot visibility by checkmark in GUI
    3 次查看(过去 30 天)
  
       显示 更早的评论
    
I have from 2-30 plots where I want to control the visibility by checkmark selection in a GUI (Guide). But I can't get it to work. Please help.
Here my code with two simple plots:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
X1=[1 2 3 4]
Y1=[-1 -2 -3 -4]
X2=[1 2 3 4]
Y2=[1 2 3 4]
handles.handle_plot1 = plot(X1,Y1);
handles.handle_plot2 = plot(X2,Y2);
guidata(hObject, handles);
% --- Executes on button press in checkbox1.
function checkbox1_Callback(hObject, eventdata, handles)
   handle_plot1 = handles.handle_plot1
   if (get(hObject,'Value')) == 1 
       set(handle_plot1, 'visible' , 'on')
   else 
       set(handle_plot1, 'visible' , 'off')
   end
% --- Executes on button press in checkbox2.
function checkbox2_Callback(hObject, eventdata, handles)
   handle_plot2 = handles.handle_plot2
   if (get(hObject,'Value')) == 1  
       set(handle_plot2, 'visible' , 'on')
   else 
       set(handle_plot2, 'visible' , 'off')
   end
But I get this error:
Error using matlab.graphics.chart.primitive.Line/set
Invalid or deleted object.
Error in test>checkbox1_Callback (line 91)
       set(handle_plot1, 'visible' , 'on')
What am I doing wrong?
0 个评论
采纳的回答
  Jan
      
      
 2017-9-27
        If plot works in an axes with 'NextPlot' set to 'replace' (the default), a new plot replaces the old plot completely. Try this:
function pushbutton1_Callback(hObject, eventdata, handles)
X1=[1 2 3 4];
Y1=[-1 -2 -3 -4];
X2=[1 2 3 4];
Y2=[1 2 3 4];
set(gca, 'NextPlot', 'add');   % Equivalent to: hold('on')
handles.handle_plot1 = plot(X1,Y1);
handles.handle_plot2 = plot(X2,Y2);
guidata(hObject, handles);
更多回答(0 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Creating, Deleting, and Querying Graphics Objects 的更多信息
			
	产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!