2016-05-09 5 views
1

I haben die folgenden Daten:Matlab - Handlung und Farbproben auf Basis von Daten

  • Data Matrix (20x210): 20 Proben mit 210 Variablen jeweils
  • Wellenlänge: 1 Reihe von 210-Variablen beschreiben, die Wellenlängenzahl
  • Konzentrationen: Konzentrationswert für jede Probe (20 Zeilen und 1 Spalte)

I in der Regel die Daten in einer normalen Weise PLOT:

plot(wavelength, dataMatrix) 

Aber was ich will, ist zu zeichnen und jede Probe die Farbe entsprechend dem Wert Konzentration unter Berücksichtigung der übrigen, Farbe basierend auf den Daten. Ich denke, es hat etwas mit Colormap zu tun. Das Ergebnis wäre so etwas wie diese:

Gibt es eine einfache Möglichkeit, dies mit Matlab zu tun?

Vielen Dank!

+0

Nizza Frage (y) gleiches Problem hier – 16per9

+0

Dies nützlich sein könnte: http://blogs.mathworks.com/pick/2008/08/15/colors-for-your -mehrzeilige Plots / – BillBokeey

Antwort

0

plot akzeptiert Linie Eigentum, einschließlich Linienfarbe, wie

plot(wavelength, dataMatrix, 'Color', [0,0,0.1]) 

colormap können integrierte Farbkarten in den RGB-Matrizen konvertieren, wie

nlines = length(concentrations); 
cmap = hsv(nlines) 

Mapping Konzentration auf Farbe als Sortier so einfach sein könnte die Nummern

c = concentrations - min(concentrations); 
c = ceil(c/max(c)*nlines); 

schließlich jede Zeile zeichnet separat

for ii = 1:nlines 
    plot(wavelength, dataMatrix(ii,:), 'Color', cmap(c(ii),:)) 
    hold on 
end 
hold off 
Verwandte Themen