Time graphs can now show individual data intervals

This commit is contained in:
A. Svensson 2015-05-21 19:35:27 +02:00
parent 8485fcb35c
commit 71fc6dfb9e
3 changed files with 8 additions and 11 deletions

View File

@ -5,7 +5,6 @@
# arg 1: path to file with the raw data # arg 1: path to file with the raw data
# arg 2: path to file to save the graph in (.png will be appended) # arg 2: path to file to save the graph in (.png will be appended)
# arg 3: optional title to show on the graph
gnuplot << EOF gnuplot << EOF
set datafile separator "," set datafile separator ","
@ -15,7 +14,6 @@ set boxwidth 0.75
set style fill solid set style fill solid
set grid set grid
unset key unset key
set title "$3" # If a second arg was supplied we show it as a title too
set terminal png size 800,200 transparent truecolor set terminal png size 800,200 transparent truecolor
set output "$2.png" set output "$2.png"

View File

@ -5,7 +5,7 @@
# arg 1: path to file with the raw data # arg 1: path to file with the raw data
# arg 2: path to file to save the graph in (.png will be appended) # arg 2: path to file to save the graph in (.png will be appended)
# arg 3: optional title to show on the graph # arg 3: periodic sampling of data, see http://gnuplot.info/docs_4.2/node121.html
gnuplot << EOF gnuplot << EOF
set datafile separator "," set datafile separator ","
@ -13,13 +13,10 @@ set xdata time
set timefmt "%s" #time format of input data set timefmt "%s" #time format of input data
set style data lines set style data lines
set style line 1 linewidth 2
set grid set grid
set ytics 0, 10
unset key unset key
set title "$3" # If a second arg was supplied we show it as a title too
set terminal png size 800,200 transparent truecolor set terminal png size 800,200 transparent truecolor
set output "$2.png" set output "$2.png"
plot "$1" every 4 using 1:2 ls 1 plot "$1" every $3 using 1:2 linewidth 2
EOF EOF

View File

@ -9,6 +9,7 @@ import (
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"strconv"
"time" "time"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
@ -52,8 +53,9 @@ func main() {
for rows.Next() { for rows.Next() {
err := rows.Scan(&id, &title) err := rows.Scan(&id, &title)
checkerror(err) checkerror(err)
createtimegraph(db, "week-time-", id, title, LAST_WEEK) // stats are updated 4 times per hour, so: 2 = 30 min, 24 = 6 hours
createtimegraph(db, "month-time-", id, title, LAST_MONTH) createtimegraph(db, "week-time-", id, title, LAST_WEEK, 4)
createtimegraph(db, "month-time-", id, title, LAST_MONTH, 24)
createweekdaygraph(db, "month-avg_day-", id, title, LAST_MONTH) createweekdaygraph(db, "month-avg_day-", id, title, LAST_MONTH)
} }
err = rows.Err() err = rows.Err()
@ -80,7 +82,7 @@ func setuptemppaths(prefix string, title string) (f *os.File, name string, path
return file, file.Name(), path return file, file.Name(), path
} }
func createtimegraph(db *sql.DB, prefix string, id int, title string, period time.Time) { func createtimegraph(db *sql.DB, prefix string, id int, title string, period time.Time, every int) {
ifile, ifilename, ofilename := setuptemppaths(prefix, title) ifile, ifilename, ofilename := setuptemppaths(prefix, title)
defer ifile.Close() defer ifile.Close()
@ -103,7 +105,7 @@ func createtimegraph(db *sql.DB, prefix string, id int, title string, period tim
checkerror(err) checkerror(err)
// run the plotter against the data file // run the plotter against the data file
err = exec.Command("./plot_time.sh", ifilename, ofilename).Run() err = exec.Command("./plot_time.sh", ifilename, ofilename, strconv.Itoa(every)).Run()
checkerror(err) checkerror(err)
// close and remove the tmp file // close and remove the tmp file