Verfasst am: 31.07.2013, 16:15
Titel: Legendeneinträge je nach Plot kontrollieren / ausblenden
Hallo zusammen,
momentag gibt sich bei einem GUI folgende Problematik:
Ich habe eine axes, in der ich zwei Funktionen plotte... z. b. sin und cos.
Die sin-Funktion wird z. B. blau dargestellt, die cos-Funktion grün.
Um nun über ein Radiobutton die eine oder andere Funktion in der Axes ausblenden zu können, kontrolliere ich die Plots über linehandles:
Nun kann ich über einen Radiobutton also schön die Sichtbarkeit in meiner Axes schalten...
Was nun aber stört: Es werden, auch wenn z. B. die cos-Funktion nicht sichbar ist, dennoch beide Funktionen in der Legende angezeigt.
Über den callback meines Radiobuttons habe ich es folgendermaßen versucht:
Gibt es da nicht einen einfacheren Weg!?
Wenn ich nämlich nun einen Plot mit mehreren (z. B. 10 Stück) Funktionen habe, und ich oben genannten Weg nehme, ist das ganz schön viel fehlerträchtige Programmiererei.
Verfasst am: 01.08.2013, 09:42
Titel: Re: Legendeneinträge je nach Plot kontrollieren / ausblende
Hallo teutopixx,
Radio-Buttons sind gedacht für sich gegenseitig ausschließende Bedingungen. Deine Aufgabe klingt eher nach Checkboxes. Dann können deren Callback-Funktionen alle auf den selben Calback zugreifen:
Code:
function checkCallBack(ObjectH, EventData)
handles = guidata(ObjectH);
value = get(handles.CheckBoxH(:), 'Value');
...
Dann hast Du die Werte aller Checkboxes und das automatische Setzen sollte unabhängig von der Anzahl der Kurven mit ein und dem selben Code laufen.
Ich vermute am aus- und wieder Einschalten der Legend lässt sich nichts ändern. Das sollte dann aber auch nicht mehr so sehr stören.
Ich hatte im FileExchange ein Tool gefunden, in dem man direkt in der Legend auf die Labels klicken konnte, um einzelne Kurven auszublenden. Suche dort mal unter dem Stichpunkt "Legend" oder "dynamic legend".
Gruß, Jan
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.