Plot visibility by checkmark in GUI
2 次查看(过去 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 中查找有关 Specifying Target for Graphics Output 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!