2016-03-29 13 views
1

Ich benutze gnuplot, um die empfangene Signalstärke von einigen kleinen Sendern anzuzeigen, die ich teste.wie man eine gnuplot colorbox mit benutzerdefinierten Farben ändert

Die Daten, die ich sammle, haben die Breite, Länge und RSSI (empfangen Signal Stärke Indikator).

Beispieldaten:

-33.77432033,151.0664296,-49 
-33.7743059,151.0665004,-48 
-33.77427705,151.0666246,-48 
-33.7742775,151.0666962,-47 

Meine Funktion der Werte der Signalstärke auf der Karte zu färben ist wie folgt:

rssicolor(a) = (-a <= 65 ? (255*65536) + ((-a * (255/65))*256) + 0 \ 
: (((255-(-a*(255/(120-65))))*65536)) + (255*256) + 0) 

Für (starkes Signal) Werte von (-1 bis -65) Ich zeichne von Rot (FF 00 00) bis Gelb (FF FF 00). Für (schwächere) Werte von -65 bis -120 zeichne ich in den Farben von gelb (FF FF 00) bis grün (00 FF 00).

plot 'gps-data.txt' using 2:1:(rssicolor($3)) notitle with points lc rgb variable 

Um plotten Daten auf einem Hintergrund I gnuplot in Multiplot Modus verwenden:

So weit so gut, alle diese Farben verwenden korrekt auf der Karte eingezeichnet.

Ein Teil des endgültigen resultierende Bild sieht wie folgt aus:

I know, it's not properly aligned

Allerdings zeigt die colorbox auf der rechten Seite des Bildes eine völlig andere Steigung von Farben. Es wird durch die Funktion bestimmt:

set cbrange [-40:-120] 
set cblabel "Signal Strength (dBm)" offset 0.0,0.0 
set zrange [0:1] 
unset xlabel 
unset ylabel 
unset title 
unset xtics 
unset ytics 
set colorbox vertical user origin 0.87,0.1 size 0.02,0.5 
splot '++' u ($1):($2):(cos($1*$2)):($3) with pm3d 
unset multiplot 

Ich bin nicht sicher, wie ich über die Änderung (oder sogar zu interpretieren) den Befehl gehen sollte, die für das Farbschema in der colorbox verantwortlich ist.

Wenn ich einen colorbox mit Farbverlauf von Rot-zu-Gelb-to-Grün wollte ich eine separate Datendatei mit Farben liefern muß, oder kann ich irgendwie die Werte in dem obigen splot Befehl ändern, dass zu bekommen?

Ich schaute auf einige der Gnuplot-Hilfedateien, aber der Splot-Befehl zeigt nicht viel viel Hilfe. Auch das Studium der Beispiele von der gnuplot Website zeigt viele verschiedene Farben, die verwendet werden, aber sie scheinen sie von einigen Standardfarbpaletten zu wählen und ich konnte nicht eine sehen, die von Rot-zu-Gelb-zu-grün geht .

Der einfachste Hack würde nur sein, meine eigene Farbbox in einem anderen Programm zu erstellen und ausschneiden und über diese Farbbox einfügen.

Irgendwelche Vorschläge?

Antwort

2

In gnuplot erstellen Paletten ist sehr einfach gibt es Tonnen von Möglichkeiten. Schauen Sie sich help palette an.Unter anderem haben Sie die defined Modus:

set palette defined (0 'red', 1 'yellow', 2 'green') 

Erneutes Maßstab geeigneten Bereich, können Sie

set cbrange [your_min_value : your_max_value] 

verwenden können Sie einen Blick auf viele Beispiele in diesem github project

+0

Ich bin ratlos . Das ist perfekt und so elegant! Ich habe sofort einige meiner eigenen Farben benutzt und habe es genau so, wie ich es wollte. Ich bin auf die Website gnuplotting.org gestoßen, konnte aber nicht finden, wonach ich gesucht habe. Die Github-Site zeigt ordnungsgemäß, was erforderlich ist. Ich danke dir sehr! Ich habe eine andere Frage bezüglich der Farbverzerrung des Hintergrundbildes, aber ich werde das in einer anderen Frage veröffentlichen und hoffe, dass Sie in der Lage sein werden, etwas Licht in die Angelegenheit zu bringen. – captcha

Verwandte Themen