Hallo zusammen,
folgendes Problem:
Ich habe eine GUI-Oberfläche mit 22 Queckboxen, sobald ein Häkchen betätigt wird, soll ein Figure dargestellt werden. Bei einem weiteren Häkchen soll das nächste Figure in das andere hineingeplottet werden, um einen Vergleich zu visualisieren.
Nun besteht mein Problem darin, dass ich bei dem 2. Plot die Legende des 1. Plots überschreibe.
Hier mein Code für die Checkboxen:
Code:
% --- Executes on button press in checkbox1. 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) figure(2)
status_2400=get(hObject,'Value');
if status_2400==1
x=0:0.5:100;
func_2400=2.4403e-018.*x.^11+-1.2833e-015.*x.^10+2.8915e-013.*x.^9+-3.6537e-011.*x.^8+2.8426e-009.*x.^7+-1.4062e-007.*x.^6+4.405e-006.*x.^5+-8.4118e-005.*x.^4+0.00089695.*x.^3+-0.0044014.*x.^2+0.0048469.*x.^1+5.127.*x.^0;
axis([0100010]) plot(x, func_2400,'b') legend('2400kW') hold on
end
% --- Executes on button press in checkbox3. function checkbox3_Callback(hObject, eventdata, handles) % hObject handle to checkbox3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure(2)
status_2200=get(hObject,'Value');
if status_2200==1
x=0:0.5:100;
func_2200=-2.0444e-020.*x.^11+-7.1268e-018.*x.^10+4.6436e-015.*x.^9+-8.2911e-013.*x.^8+6.7458e-011.*x.^7+-2.1567e-009.*x.^6+-4.6846e-008.*x.^5+6.0688e-006.*x.^4+-0.00019152.*x.^3+0.0024877.*x.^2+-0.012368.*x.^1+4.99.*x.^0;
axis([0100010]) plot(x, func_2200,'g') legend('2200kW') hold on
end
prinzipiell kann man genau definieren welche Plots in der Legende aufgeführt werden sollen.
hier mal ein kleines Beispiel
Code:
figure(1) hold on
hPlot1=plot([1,2,3,4,5],[1,2,3,4,5],'r')
hPlot2=plot([1,2,3,4,5],[5,4,3,2,1],'b')
hPlot3=plot([1,2,3,4,5],[1,2,3,5,4],'g') legend([hPlot1,hPlot3],'test1','test3')
man kann also handles zu den einzelnen Plots definieren und diese dann explizit in der Legende verwenden um eine korrekte Zuordnung zu erreichen.
hilft das bei Deinem Problem?
Leider kann man Deinen Code nicht ausprobieren. Aber ich denke wenn man die handles der Plots übergibt sollte man das Problem lösen können.
Einstellungen und Berechtigungen
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.