Reputation: 1101
I have a datafile that looks like this:
1 1.0 0
2 1.5 0
3 0.0 1
4 1.2 2
5 1.0 1
6 1.1 1
where the first column is my X value, the second column is my Y value, and the third column is a color. I'd like for each line segment to be colored according to the third column. So the first two line segments would be "color 1", the next would be "color 2", the next would be "color 3", and the final two would be "color 1" again.
I tried:
plot 'file.dat' using 1:2:3 with lines rgb variable;
But my line was all black.
Is this possible in gnuplot?
Thanks, Gabe
Upvotes: 33
Views: 44580
Reputation: 141
This has been asked long ago, but i just had the same question. And the most suitable way to also get legend/title for "variable" colors, was:
# set this to the range of your variable which you want to color-encode
# or leave it out
set cbrange [0:1]
# define the palette to your liking
set palette defined ( 0 "#B0B0B0", 0.333 "#FF0000", 0.666 "#0000FF", 1.0 "#000000" )
# in this example, column 3 is mapped to the colors of the palette
plot "data.txt" u 1:2:3 w l lc palette z
(tested on gnuplot 4.6 patchlevel 4)
Upvotes: 14
Reputation: 131
plot 'foo.dat' with lines linecolor variable
or abbreviated:
plot 'foo.dat' w l lc var
Upvotes: 13
Reputation: 5299
This following works for me (gnuplot 4.4)
plot "./file.dat" u 1:2:3 with lines palette
Hope this helps.
When I ran your code gnuplot couldn't pass the "rgb" part.
For an example of using the variable tag see the similar question: GNUPLOT: dot plot with data depending dot size
with the useful examples found here: http://gnuplot.sourceforge.net/demo/pointsize.html
All the best
Tom
Upvotes: 29