Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Use gnuplot to plot sqlite database

I have a sqlite database that contains basic weather information in the following format:

temp1 temp2 pressure humidity
22    23    1024     40
24    25    1027     45
25    26    1020     62
18    15    1019     80

how can I plot this data using gnuplot? Do I have to re-arrange the data before being able to plot it?

like image 898
Flatron Avatar asked Dec 20 '22 12:12

Flatron


1 Answers

To extract the data from your sqlite database, you can use the sqlite3 command line tool to extract the data on-the-fly. This is done with gnuplot by using a < which spawns a shell and uses the output of the given shell commands for plotting.

plot '< sqlite3 myfile.db3 "SELECT temp1, temp2, pressure, humidity FROM myTable;"' using 0:1 title 'temp1', \
     '' using 0:2 title 'temp2'

This would extract all four fields for each plot ('' repeats the previous file name / shell command). You could also use function to format the shell command:

SqliteField(f) = '< sqlite3 myfile.db3 "SELECT '.f.' from myTable;"'
fields = 'temp1 temp2 pressure humidity'
plot for [f in fields] SqliteField(f) using 0:1 title f
like image 175
Christoph Avatar answered Dec 22 '22 04:12

Christoph