Verfasst am: 14.02.2014, 10:38
Titel: plot hält sich nicht an farbreihenfolge
Hallo,
ich plotte einige Messdaten mit der Funktion plot(); in einen Graphen in meiner GUI.
Ich habe gesehen, dass man in GUIDE die Reihenfolge der Farben, die die einzelnen Linien bekommen sollen, festlegen kann.
Nun ist es leider so, dass die Linien, die ich plotte, willkürliche Farben haben. Meine Legende hält sich allerdings an die Reihenfolge.
Weiß jemand woran das liegt, bzw. wie ich das korrigieren kann?
#EDIT:
ich habe in meine GUI Checkboxen eingefügt, mit denen ich auswählen kann welche Daten geplottet werden sollen. Wenn ich alle Daten plotte dann stimmt die Reihenfolge der Farben.
Wenn ich einzelne Daten entferne, (im code wird die variable yn gleich 0 gesetzt) stimmt die Reihenfolge nicht mehr.
ich kann mir nicht vorstellen, dass die Reihenfolge willkürlich ist. Sie folgt der ColorOrder-Eigenschaft des Koordinatensystems, standardmäßig blau, grün, rot etc. Auch Nulllinien sind Linien, werden dabei also berücksichtigt.
Falls das nicht hilft, bitte klären:
- welche Farbreihenfolge erwartest du?
- welche Farbreihenfolge erhältst du?
Danke für deine Antwort!
wenn ich alle Daten Plotte, die ich aus der exel Datei gelesen habe, klappte alles wunderbar. wenn ich allerdings einige ausgelassen habe, (Abfrage über checkbox in der gui und dann im code variable = 0 setzten) wurde die Reihenfolge durch einander geschmissen und es wurden Farben angezeigt, die erst viel weiter hinten in der Reihenfolge standen.
Ich habe aber inzwischen eine andere Lösung gefunden:
Code:
plot(handles.axes1,x_achse,y1,'r');
hold on;
plot(handles.axes1,x_achse,y2,'b');
hold on;
.
.
.
stimmt eigentlich
hätte ich auch selbst drauf kommen können...
vielleicht kann ich dann wieder die legende benutzen. das probiere ich mal bei Gelegenheit.
Danke für deine Hilfe!
tut das nicht.
also kann ich jetzt wie folgt korrekt polten. Der code wird alle Daten, die in der matrix plott_data gespeichert sind, plotten und dabei die plotts vom vorherigen Aufruf löschen. (in diesem fall sind die Daten für die x Achse in der ersten spalte gespeichert)
Code:
i=2;
v=size(plott_data);
hold off;
while i<=v(1,2) plot(handles.axes1,plott_data(:,1),plott_data(:,i));
holdall;
i=i+1;
end
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.