WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Lineplots mit verschiedenen Farben funktioniert nicht

 

RinaEs21
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 28.10.16
Wohnort: ---
Version: R2016b
     Beitrag Verfasst am: 21.06.2019, 13:21     Titel: Lineplots mit verschiedenen Farben funktioniert nicht
  Antworten mit Zitat      
Hallo Leute,

sicherlich wurde dieses Problem schon oft diskutiert, doch kein Thread (sowohl hier als auch bei Google) konnte mir weiterhelfen.

Ich möchte gern verschiedene Spektren plotten, die in verschiedenen Farben (hier: jet colormap) dargestellt werden.

Sehr gern würde ich euch dazu ein Minimalbeispiel zur Verfügung stellen, welches ich auch schon in meinem Matlab generiert habe, aber in diesem Minimalbeispiel funktioniert der Code genau so, wie ich es will. Shocked Und ich habe es schon sehr nah an meinen Daten herangeführt.

Deswegen wird wohl kein Weg dran vorbei führen, euch meine Daten (Datei: iBCG_Spectra_new.mat) zu geben.

Hier der Code dafür:
Code:

clear
load('iBCG_Spectra_new.mat');
a = fieldnames(iBCG);
b = logical(contains(a,'SW'));
c = a(b,:);

X = iBCG.wavelengths;
for i = 1:size(c,1)
    Y.(c{i,1}) = iBCG.(c{i,1}).spectra;
end

figure
cc = jet(size(c,1));
hold all
for i = 1:size(c,1)
   p{i} = plot(X,Y.(c{i,1}),'color',cc(i,:));
end

for i = 1:size(c,1)
     d{i} = get(p{i},'color');
end
 


Selbst, wenn ich es nicht durch eine for-Schleife laufen lassen, sondern jeden Plot einzeln eingebe, werden alle Plots in der Farbe des letzten plots angezeigt.
Ich habe mir auch schon die color von jeden Plot als Array (d) ausgeben lassen und selbst da sind sie eigentlich alle unterschiedlich. Weswegen ich nicht verstehe, warum schlussendlich alle plots die gleiche Farbe habe.
Verschiedne Varianten mit "hold all" und "hold on" habe ich auch schon ausprobiert.

Wie gesagt, beim Minimalbeispiel, welches ich generiert habe, funktioniert alles.

Ich bin total ratlos.

Ich wäre für jeden Hinweis dankbar. Very Happy

LG
Rina

P.S:
Für die, die es interessiert, hier noch das Minimalbeispiel, das zeigt, wie es eigentlich ungefähr aussehen soll:
Code:

clear
a = {'Y1','Y2','Y3','Y4','Y5','Y6','Y7','Y8'};
A.X = 1:2000;

for i = 1:size(a,2)
    for j = 1:randi([3 50],1,1)
        A.(a{i})(j,:) = A.X.*100.*i + randi([10 1000],1,1);
    end
end

figure
cc = jet(size(a,2));
hold all
for i = 1:size(a,2)
   p{i} = plot(A.X,A.(a{i}),'color',cc(i,:));
end
 


iBCG_Spectra_new.mat
 Beschreibung:
Das ist das struct Aray, aus dem ich meine Daten ziehe, die geplottet werden sollen

Download
 Dateiname:  iBCG_Spectra_new.mat
 Dateigröße:  621.34 KB
 Heruntergeladen:  232 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.06.2019, 16:55     Titel:
  Antworten mit Zitat      
Hallo,

die neuen Daten enthalten scheinbar immer die vorherigen und überschreiben sie somit. Wenn du die Daten in der umgekehrten Reihenfolge plottest, wird's farbig:

Code:
for i = size(c,1):-1:1
   p{i} = plot(X,Y.(c{i,1}),'color',cc(i,:));
   hold on
end


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
RinaEs21
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 28.10.16
Wohnort: ---
Version: R2016b
     Beitrag Verfasst am: 21.06.2019, 17:46     Titel:
  Antworten mit Zitat      
Oh. Stimmt. Na das ist ja jetzt peinlich. XD
Dann ist wohl irgendwas mit der Verarbeitung der Daten vorher falsch gelaufen. Irgendwann ist man halt betriebsblind.

Vielen Dank für deine Hilfe.

LG
Rina
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 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.