dudu1982
dudu1982

Reputation: 301

gnuplot display y2 values on x2

I have the following graph:

y1 shows searches scale, y2 shows click scale. on the x1 I have time values displayed.

I wish to display clicks values (each hour) on x2 (the upper axis). When I add the command set x2tics it displays the searches data and not the clicks like I wished.

How do I change it so it will display the clicks unit?

Gnuplot script:

set xlabel "Time"
set ylabel "Times"
set y2range [0:55000]
set y2tics 0, 1000
set ytics nomirror
set datafile separator "|"
set title "History of searches"
set xdata time          # The x axis data is time
set timefmt "%Y-%m-%d %H:%M"        # The dates in the file look like 10-Jun-04
set format x "%d/%m\n%H:%M"
set grid
set terminal png size 1024,768        # gnuplot recommends setting terminal before output
set output "outputFILE.png"  # The output filename; to be set after setting
                     # terminal
load "labelsFILE"

plot 'goodFILE' using 1:3 lt 2 with lines t 'Success'  , 'clicksFILE' using 1:2 lt 5 with lines t 'Clicks right Y' axis x1y2


replot

Graph:

graph http://img42.imageshack.us/img42/1269/wu0b.png

Upvotes: 1

Views: 2238

Answers (1)

Christoph
Christoph

Reputation: 48390

Ok, so to get started, here is how you can set a label with the number of clicks as follows (using you data file names):

plot 'goodFILE' using 1:3 lt 2 with lines t 'Success',\
     'clicksFILE' using 1:2 lt 5 with lines t 'Clicks right Y' axis x1y2,\
     '' using 1:2:(sprintf("%dk", int($2/1000.0))) with labels axis x1y2 offset 0,1 t ''

Just add this as plotting command, and it should work just fine.

To illustrate, how the labels might look like, here is an example with some dummy data:

set terminal pngcairo
set output 'blubb.png'

set xlabel "Time"
set ylabel "Times"
set y2label "Clicks per hour"
set y2range [0:10000]
set yrange [0:1]
set ytics nomirror
set y2tics
set key left

set samples 11
set xrange[0:10000]
plot '+' using 1:1:(sprintf("%dk", int($1/1000.0))) every ::1::9 with labels axis x1y2 offset 0,1 t '',\
     '' using 1:1 with linespoints axis x1y2 pt 7 t 'Clicks per hour'

Which gives you:

enter image description here

Upvotes: 1

Related Questions