Line plot in GnuPlot where line color is a third column in my data file?

40,773

Solution 1

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

Solution 2

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)

Solution 3

plot 'foo.dat' with lines linecolor variable

or abbreviated:

plot 'foo.dat' w l lc var
Share:
40,773
Gabe
Author by

Gabe

Updated on July 09, 2022

Comments

  • Gabe
    Gabe almost 2 years

    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