Verfasst am: 22.09.2008, 14:38
Titel: Mehrere Histogrammfarben in einem Plot (im GUI)
Ich will mich ggf. schon vorab für die Dummheit dieser Frage entschuldigen, aber irgendwie stehe ich da gerade auf dem Schlauch.
Ich möchte verschiedene Histogramme in einem Diagramm in meinem GUI plotten. Allerdings möchte ich jeder "Kurve" eine eigene Farbe geben. Entweder bin ich akut zu blöd oder die zugehörige Property ist verdammt gut versteckt. Jedenfalls finde ich nicht die entsprechende Eigenschaft, um die Farbe zu ändern. Deshalb überlagern sich die verschiedenen Balken zu einer undurchsichtigen, gleichfarbigen Masse.
Bislang plotte ich meine Histogramme so:
Code:
for(i=1:number_of_signals) hist(handles.Diagramm1, signal1);
end
Ja, die Schleife oben macht natürlich immer wieder das Gleiche.
Mein Problem ist, dass ich nicht weiß, wie man die Farbe einer Kurve in einem Diagramm in meinem GUI ändert.
Das Histogramm wird korrekt erzeugt und dargestellt. Nur überlagern sich die verschiedenen Histogramme durch die Gleichfarbigkeit so, dass man nichts Sinnvolles mehr erkennen kann.
Mal ne Frage zum generellen Ablauf: Sollte ich erst ein Figure komplett erstellen und es dann quasi in mein GUI verschieben oder direkt in meinem Diagramm im GUI operieren?
Nicht, wenn Du das auf eine Matrix anwendest (siehe das Beispiel).
Wenn Du alle Signale zeilenweise in eine Matrix schreibst kannst Du auf die for-Schleife verzichten und Farben werden automatisch zugewiesen (kannst Du dann natürlich auch beliebig ändern).
Gib mal ein lauffähiges Beispiel samt Testdaten.
_________________
Das Problem bei der Übergabe an eine Matrix ist, dass die Daten vorher 3-dimensional gespeichert sind und ich es gerade nicht hinbekomme, dass MATLAB versteht, welche Daten ich der neuen Matrix weiter reichen möchte.
Eine aktuelle Matrix sehe so aus:
signal = [0.0460, 0.0012; 0.0012, 0.0581];
Deshalb fragte ich ja, ob man quasi erst das komplette Figure erstellt und es dann in das GUI setzt oder ob man direkt im GUI arbeitet.
Wenn ich nach meiner Methode das Diagramm im GUI erzeuge und danach 'FaceColor' editieren will, bekomme ich diese (berechtigte) Fehlermeldung "Ther is no 'FaceColor' property in the 'axes' class.
edit: Wenn mir jemand verrät, wie ich die zweidimensionale Matrix mit Werten aus meinem dreidimensionalen Speicherbollwerk fülle, versuche ich sofort an der bar-Variante
Da ich jetzt endlich geschnallt habe, wie man ein bereits vorhandenes Diagramm in einm GUI anspricht, habe ich es auch hin bekommen, dass ich mit Befehlen wie plot und bar darin hantieren kann. Dadurch ist auch die Farbeinstellung kein Problem mehr und ich muss mir jetzt nur noch einen sinnvollen Algorithmus für die Berechnung der nBins bei hist in Abhängigkeit der Anzahl der Y-Werte überlegen...
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.