Wenn Ihre Daten eine „Matrix“ bilden, das heißt, gibt es M x-Proben, N y-Proben, und Sie haben die Daten für alle MxN Punkte, dann wahrscheinlich die einfachste Lösung ist die Verwendung
plot ... w rgbimage u 1:2:(r($3)):(g($3)):(b($3))
und geben Sie die r, g, b Werte als drei zusätzliche Spalten wie oben gezeigt an.
Wenn Ihre Daten jedoch "spärlich" sind (nur einige der Beispiele sind wie in Ihrer Frage verfügbar) und es gibt nicht viele Punkte, könnte man versucht sein, die elementaren Quadrate manuell zu erzeugen. Zu diesem Zweck könnte man vorgehen:
set terminal png enhanced
set output 'plot.png'
#custom value -> color mapping
rgb(r, g, b) = 65536 * int(r) + 256 * int(g) + int(b)
fn(val) = rgb(100 + val*10, 0, 0)
#square size
delta = 0.5
set xr [-delta/2:1+delta/2]
set yr [-delta/2:1+delta/2]
set xtics 0,delta/2,1 out nomirror
set ytics 0,delta/2,1 out nomirror
set format x "%.2f"
set format y "%.2f"
set size ratio 1
unset key
fName="test.dat"
load sprintf("<gawk -v d=%f -f parse.awk %s", delta, fName)
plot fName u 1:2:3 w labels tc rgb 'white'
Dieses Skript das Vorhandensein von Hilfs gaffen Skript parse.awk
im selben Verzeichnis übernimmt:
{
printf "set object rectangle from %f,%f to %f,%f fc rgb fn(%d) fs solid\n",
$1-d/2, $2-d/2, $1+d/2, $2+d/2, $3
}
diese Skripte übernimmt die erforderliche Platz Größe (-v d=%f
im Aufruf of gawk) und erzeugt für jeden Punkt eine Aussage, die das entsprechende Quadrat erzeugt. Diese Anweisungen werden folglich durch den Befehl load
ausgeführt.
Die Zuordnung der Farben erfolgt über die im Haupt-Gnuplot-Skript definierte Funktion fn
. Es nimmt den übergebenen Wert und erzeugt einen rgb-Wert, der dann mit fc rgb
in der rectangle
Spezifikation verwendet wird.
Zusammen ergibt dies dann:
Vielen Dank! –