Search code examples
gnuplotmultiple-columnsaxes

How to plot 3 columns in GNUplot?


I have files looking like this:

Number Data1 Data2
 1  9.10 4.022
 2  15.27 3.996
 3  21.92 4.004
 4  21.19 4.026
 5  20.67 4.022
 6  20.99 4.000
 7  19.80 4.004
 8  20.01 3.931
 9  20.18 4.004
10  19.78 4.007

I want to plot Number in X axes, Data1 in leftY and Data2 in rightY, but I can not figure out how to do it.

Thanks


Solution

  • Just a brief annotated sample, using your data saved in a file so.dat:

    # Set ticks for 2nd y axis
    set y2tics 
    # We don't want to see the left ticks on the right axis
    set ytics nomirror
    
    # Set ranges so that the data points are not on the axis
    set xrange [0:11]
    set yrange [8:23]
    set y2range[3.95:4.05]
    
    # use first line of the file for labels
    set key autotitle columnhead
    # display key in least busy area
    set key bottom right
    
    # Title and axis labels
    set title "Nice Try"
    set xlabel "Number"
    set ylabel "Data1"
    set y2label "Data2"
    
    plot "so.dat" using 1:2 axes x1y1 with points pointsize 2,\
         "" u 1:3 axes x1y2 w p ps 2 pointtype 6
    

    One can do a lot more decoration etc. but I think this is the essence of what you want. The graph produced:

    enter image description here