Problem:
Habe eine GUI mit mehrene Axes, nun möchte ich eine ins clipboard kopieren, um es später z.B in Word einfügen kann!
Dazu öffne ich eine neue Figure, kopiere ich alle Objekte der axes in diese neue Figure;
Funktioniert bestens, jedoch wird die Legende, die ich eingefügt habe nicht mitkopiert!
Was kann ich machen, dass die Legende mitgespeichert wird??
das Parent-Objekt einer Legende ist die Figure, nicht das Koordinatensystem. Dies ermöglicht, dass die Legende z.B. auch außerhalb des eigentlichen Koordinatensystems angezeigt werden kann.
Abhilfe: ich würde das Legenden-Objekt explizit zusätzlich kopieren.
Durch meine switch Abfrage entscheid ich wieviele plots in die axes kommen.
Nun möchte ich auch die jeweiligen Legenden zu jedem plot einblenden, aber leider haut das so nicht hin!
Grundgedanke:
Möchte später auch einzelne plots wieder löschen und dann muss natürlich die dazugehörige Legende auch gelöscht werden!
Geht das?
case4
plots_handle(1) = semilogx(limitData{1}(:,1).*1e+6,limitData{1}(:,2),'b', 'LineWidth',2, 'DisplayName', listelements{1});
plots_handle(2) = semilogx(limitData{2}(:,1).*1e+6,limitData{2}(:,2),'k', 'LineWidth',2, 'DisplayName', listelements{2});
plots_handle(3) = semilogx(limitData{3}(:,1).*1e+6,limitData{3}(:,2),'g', 'LineWidth',2, 'DisplayName', listelements{3});
plots_handle(4) = semilogx(limitData{4}(:,1).*1e+6,limitData{4}(:,2),'m', 'LineWidth',2, 'DisplayName', listelements{4});
% das könnte man doch auch mit einer for-Schleife machen? .........
h = legend(plots_handle(1:length(plots_handle)), listelements(1:length(plots_handle)));
% da die Display Names schon gesetzt sind, müsste auch folgendes gehen: legend show
Falls das nicht funktioniert: du würdest die Legende haargenau so kopieren wie auch das Koordinatensystem. Das einzige mögliche Problem ist, dass du ein Handle auf die richtige Legende benötigst. In der GUI könnte das kompliziert werden, wenn es mehrere Legenden gibt.
wenn "legend show" an der einen Stelle funktioniert, sollte es immer funktionieren. Es sollte ausreichend sein, "legend show" zu schreiben, wenn ein Graph gelöscht wurde. Falls nicht, unmittelbar davor ein "legend off".
Welchen Datentyp hat listelements?
Falls das Problem bestehen bleibt: kannst du ein reproduzierbares Mini-Beispiel dafür erstellen?
Du hattest in deinem Code schon irgendwo ein "hold on", oder? Sonst gehen ja die vorherigen Plots verloren, und dann machen natürlich auch mehrere Legenden keinen Sinn.
Hast du das auch mit "legend show" nochmal probiert?
Noch etwas:
Und zwar die obigen plots werden nachträglich in die axes geplottet. Vorher werden zwei andere Graphen geplottet und die obigen kommen dann noch hinzu!
Mir ist keine Möglichkeit bekannt, legend show/hide selektiv einzusetzen.
Dann musst du sehen, dass du die andere Syntax zum Laufen bekommst.
Ich kann nicht nachvollziehen, warum das in meinem Mini-Beispiel (lass das bei dir auch mal laufen) funktionieren sollte und bei dir nicht. Dazu müsstest du eben ein für mich reproduzierbares Beispiel zur Verfügung stellen, in dem das Problem auftritt.
ok Harald, vor ab schon mal rechtherzlichen Dank.
Morgen in der Früh probier ich deinen Vorschlag nochmal aus und wenns dann nicht klappt, versuch ich dir ein Beispiel zu posten!
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.