Plot visibility by checkmark in GUI
    4 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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 Kommentare
Akzeptierte Antwort
  Jan
      
      
 am 27 Sep. 2017
        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);
1 Kommentar
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Creating, Deleting, and Querying Graphics Objects finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

