Ich habe eigentlich das gleiche Problem, ich möchte bei einem meiner Legendeneinträge (hier "ebh") die Länge der Linie verkürzen und wollte den Vorschlag von Sco benutzen:
Code:
h = legend([ebh, t, m, b], 'ebh', 't', 'm', 'b', 'Location', 'NorthWest');
ch = get(h,'child');
set(ch(2),'XData',[0.250.4]);
Dabei sind t, m und b errorbar-Plots die nicht verändert werden sollen und ebh ist ein line-plot.
Mit obigem Code bekomme ich allerdings folgenden Error:
Error using hg.text/set
The name 'XData' is not an accessible property for an instance of class 'text'.
Error in hIII_V2 (line 274)
set(ch(2),'XData',[0.25 0.4]);
Weiß jemand, warum? Und was ich anders machen muss? Bin etwas ratlos, Danke schon mal für jegliche Hilfe!!
Bitte hänge eine neue Frage nicht an einen altes Thema an. Andernfalls ist es verwirrend, ob neue Antworten Deine oder die Orginal-Frage betreffen und der "beantwortet"-Status wird ebenfalls sinnfrei. Danke.
Hallo Jan,
das tut mir wirklich leid - ich dachte es wäre übersichtlicher (und einfacher für euch "Helfer") wenn man nicht für das vermeintlich gleiche Problem immer wieder einen neuen Thread aufmachen würde!
Bzgl. der Legende - ich hab mittlerweile gemerkt, es funktioniert, wenn ich nur für 'ebh' eine mache (auch wenn ich noch nicht ganz verstehe warum, weil Cococabana hatte im vorigen Thread ja auch mehrere Legendeneinträge).
Allerdings wenn ich nun versuche, die erstellte Grafik zu speichern (egal ob als bmp, jpg oder tiff) wird die Linie auf einmal wieder länger?!
Das tut's schon irgendwie, auch wenn ich das alles nicht so elegant finde, und meine Linie in der Legende ist jetzt vertikal auch nicht mehr mittig, was ich auch über YData nicht hinkrieg, wer weiß warum, aber was solls
Hallo
Um die Frage vom Oben zu beantworten:
Du bist auf eine Beschriftung gestoßen. Das kann sein dass in deinen Legend andere Kinderordnung ist als bei Sco das der Fall war. Kann auch auf unterschiedlichen Matlabversionen liegen
Also du brauchst nicht die Beschriftung
Versuch mal z.B so
Code:
h = legend([ebh, t, m, b], 'ebh', 't', 'm', 'b', 'Location', 'NorthWest');
ch = findall(h,'type','patch');
set(ch(1),'XData',[0.250.4]);
ja, das hatte ich sogar auch schon probiert, allerdings kommt dann
Warning: line XData length (2) and YData length (1) must be equal
Wenn ich dann im Code einfach hinter XData noch nen YData mach, kommt zwar keine Warnung mehr, aber die Linie in der Legende wird nicht kürzer, egal was für Werte ich bei X und YData eingeb... ?!
Ich hab jetzt einfach nur einen Legendeneintrag für ebh gemacht und die Legende wie in dem Link beschrieben auf ne neue Achse kopiert, damit Matlab die Linienlänge beim Speichern als Bitmap nicht wieder ändert.
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.