|
pg |

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 16.01.13
|
 |
|
 |
Wohnort: Kleinmachnow (b.Berlin)
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 16.01.2013, 23:08
Titel: Matlab legend
|
 |
|
 |
|
Hallo bin neu und hab mir hier auch Hilfe geholt. Jetzt aber mal eine Frage zu der lästigen hold on/off/all Funktion:
Ich muss/will in einer for-Schleife plotten (plot-Liste variabler Länge) und dazu die Legende ausgeben:
Geht nicht, weil die Ausgabetexte überschrieben werden. Also die Legende-Texte in ein cell-array.
Das geht mit den Kurvereigenschften aus plot(), aber nur mit einem ---> hold off VOR der for-Schleife (hab ich hier im Forum gelernt), sonst stimmen die Frabe/Linien-Stiel nicht, weil zufällig aus den Properties ausgewählt (wer hat bloß die legend() geschrieben ???).
ABER: mit hold off werden die Properties gelöscht und damit geht die calback-funktion, die an der Maus hängt, auch nicht mehr !!!
Meine callback-Funktion (Axes_ButtonDownFcn) ruft zuerst --->
rect= getrect(handles.Axes);
auf und wartet, bis die Maus das Rechteck im Diagramm (Fenster) hat, also der linke Button losgelassen ist. D.h. nach einem Plot kann ich mit der Maus gar nichts mehr machen, nur weil ich die Legende auch haben will (sonst braucht man das hold off nämlich nicht und mit der Maus kann man im Plot prima arbeiten).
ALSO:
nach dem plotten hilft nur --->
set (handles.figure1,'WindowButtonDownFcn' ,{@Axes_ButtonDownFcn handles});
Meine Frage: Wie kann man das geschickter umgehen (ich will nicht die zoom-Funktion mit dem Fenster ersetzen) oder ist das wirklich nur so "getrickst" möglich und wo steht das eigentlich ???
MatLab ist zwar prima (GUI mit Matlab erstellt, wunderbar), aber das ist eine ganz miese funktion (legend/hold).
Wer hat einen guten Rat ???
Edit by Martin: Bitte doe Code-Formatierung verwenden. Danke!
|
|
|
|
|
Thomas84 |

Forum-Meister
|
 |
Beiträge: 546
|
 |
|
 |
Anmeldedatum: 10.02.10
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.01.2013, 07:34
Titel:
|
 |
Hallo,
1) Dein Thema ist sicher nicht Off Topic. Ich denke bei Grafiken und Plots hätte es gut gepasst.
2) Poste doch ein Minimalbeispiel welches zeigt was nicht richtig funktioniert.
Folgendes funktioniert bei mir:
viele Grüße
Thomas
|
|
|
Verschoben: 17.01.2013, 08:19 Uhr von Martin Von Off Topic nach Grafiken und Plots |
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 17.01.2013, 12:50
Titel: Re: Matlab legend
|
 |
Hallo pg,
Statt per HOLD das aktuelle AXES-Objekt zu ändern, kannst Du das auch explizit machen:
Nun werden beim Zeichnen neuer Objekte die existierenden nicht mehr gelöscht.
Gruß, Jan
|
|
|
pg |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 2
|
 |
|
 |
Anmeldedatum: 16.01.13
|
 |
|
 |
Wohnort: Kleinmachnow (b.Berlin)
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 17.01.2013, 23:13
Titel:
|
 |
Hallo Jan, Thomas,
danke für Eure Antworten !
Thomas ich denke die Code-Fragmente sind klar genug.
Jan Dein
--> AxesH = axes('NextPlot', 'add') gefällt mir, werde es also ausprobieren und zwar ohne hold off vor der Schleife.
Wenns funktioniert, also die Maus-Funktion (hold off ist eindeutig der Störenfried!) nicht stirbt, melde ich mich. Aber Geduld, ich habe z.Zt. wenig Zeit dafür.
Gruß pg
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
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.
|
|