Verfasst am: 28.07.2011, 09:16
Titel: Mehrere Graphen in ein Plot mit checkboxen steuern
HAllo zusammen,
ich möchte gerne 3 Plots in einem Graphen auf der GUI anzeigen. Die Sichtbarkeit der einzelnen GRaphen soll durch 3 Checkboxen steuerbar sein also dass ich gezielt welche ein und ausblenden kann ohne dass die anderen eingeblendeten dann verschwinden.
Ich habe hier schon ein bisschen was ausprobiert. Mit einer Checkbox und einem Plot klappt das wunderbar, aber wenn ich danneinen zweiten hinzuüge geht gar nix mehr. Ich schreibe mal was ich bisher habe:
Ich habe einen Callback, in dem Ich alle meine plots ausführe und in handles speicher.
Code:
function createplot_Callback(hObject, eventdata, handles) % hObject handle to createplot (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
function checkbox1_Callback(hObject, eventdata, handles) % hObject handle to checkbox1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
ifget(hObject,'Value') == 1 set(handles.h1,'Visible','on');
elseifget(hObject,'Value')==0 set(handles.h1,'Visible','off');
end
Das Problem ist einfach, dass mit dem erst5en Code, die erste Checkbox funktioniert. MItdem zweiten (also dem auskommentierten) funktioniert nur die zweite Checkbox, also:
Code:
function checkbox2_Callback(hObject, eventdata, handles) % hObject handle to checkbox2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% Hint: get(hObject,'Value') returns toggle state of checkbox2
ifget(hObject,'Value') == 1 set(handles.h2,'Visible','on');
elseifget(hObject,'Value')==0 set(handles.h2,'Visible','off');
end
Hallo
weil du HOLD zwei mal hintereinander aufrufst, da du aber nicht explizit sagst, dass HOLD Einfüge-Modus nutzt, schaltet es automatisch zw. Ersetze und /Einfüge-Modus um. Also entweder hold nur einmal nutzen.
Du kannst aber auch direkt NextPlot-Property von deinen Axes nutzen.
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.