2012-08-03 14 views
6

Ich habe einige X Y Z Daten in einer Datei und ich benutze gnuplot, um es anzuzeigen. Ich erstelle eine Heat Map, dh. ein 2D-Diagramm, in dem der Z-Wert mithilfe von Farbe dargestellt wird. Gerade jetzt das folgende Skript Ich verwende:gnuplot heat map Farbraum

set palette defined (0 "blue", 1 "red") 
plot "xyz.dat" u $1:$2:$3 w image 

Mein Problem ist, gnuplot ignoriert die 0 und 1 in der Palette Definition. Es verwendet die angegebenen Farben, skaliert jedoch entsprechend dem minimalen und maximalen Z-Wert in der Datei. Dies macht es schwierig, verschiedene Diagramme visuell zu vergleichen, deren z-Bereich unterschiedlich ist.

Wie kann ich gnuplot mitteilen, die Skalierung des z-Farbbereichs zu beenden?

Antwort

9

Der Befehl "Palette festlegen" bildet die Grauwerte ab, die Sie erhalten würden, wenn Sie Graustufen auf einer Farbpalette darstellen würden. Die Skalierung auf min -> 0 und max -> 1 ist, wie es funktionieren soll. Wenn Sie eine Reihe von Diagrammen mit derselben Skalierung der Daten erstellen möchten, verwenden Sie den Befehl "set cbrange". Zum Beispiel

set cbrange [0:0.5] 
    set palette defined (0 "blue", 1 "red") 
    splot '++' using 1:2:(sin($1)*cos($2)) w image 

gibt Ihnen ein Bild Grundstück mit dem maximalen Datenwert von 0,5 bis rot abgebildet und 0 bis blau abgebildet. Nachfolgende Plots, wie

splot '++' using 1:2:(0.5*sin($1)*cos($2)) w image 

die gleiche Skalierung verwenden, so können sie verglichen werden.