Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Having "automatic" x

Tags:

plot

gnuplot

Just a simple question (I imagine) but, lets say I have the following data file:

# no x data, it's sampled for instance each second.
23 42 48 
49 89 33
39 44 97

How (if possible) can I plot that as if it were

1 23 42 48 
2 49 89 33
3 39 44 97

using the 1,2,3,.. (first column) as x ?

doing something like: plot "file.dat" using (lineNumber):3 for instance.

like image 607
user978548 Avatar asked Mar 12 '12 09:03

user978548


3 Answers

If you don't want to rely on awk, gnuplot can do this as well. See help plot datafile using and help plot datafile using pseudocolumns. Try:

plot "file.dat" using (column(0)):3
like image 107
mgilson Avatar answered Oct 20 '22 02:10

mgilson


E.g. to plot the third line of the datafile:

plot "DATAFILE" u 3

or with awk:

plot "<awk '{print FNR,$0}' DATAFILE" u 1:4 

Note that awk adds linenumbers, so the first column is linenumber.

does the same, gnuplot is automatically using the line-number for the x-axis

like image 40
Raphael Roth Avatar answered Oct 20 '22 01:10

Raphael Roth


Or more simply, you can also type: plot "file.dat" u ($0):3

This will allow you to modify the index variable linearly, as you would any other column

Such as scaling by 2 and adding 1: plot "file.dat" u (($0)*2+1):3

like image 3
Chris M Avatar answered Oct 20 '22 02:10

Chris M