dcav-stats/plot.rb

79 lines
1.7 KiB
Ruby

# coding: utf-8
load 'config.rb'
users = USERNAMES
log_dir = LOG_DIR
colors = {"christoffermadsen" => "1d6a6f",
"jmaa" => "9db512",
"jacob" => "e01476",
"alexander" => "00c0c7"}
def rand_color
"%06x" % (rand * 0xffffff)
end
def color_dist (c1, c2)
(c1[0..1].hex - c2[0..1].hex).abs +
(c1[2..3].hex - c2[2..3].hex).abs +
(c1[4..5].hex - c2[4..5].hex).abs
end
#users.each do |user|
# tentative_color = rand_color
# while (colors.detect {|k,v| color_dist(v,tentat#ive_color) < 200}) do
# tentative_color = rand_color
# end
#
# colors[user] = tentative_color
#end
plotstring = %Q[set terminal 'svg' size 800,400 fname 'Verdana, Helvetica, Arial, sans-serif' \
fsize '14' rounded dashed
set key bottom center outside horizontal
set style line 1 lt 1 lw 2 pt 7 ps 0.4
set xlabel "Time"
set xdata time
set timefmt "%s"
set format x "%m/%d"
set xtics 60*60*24*7*4
set xrange [1485275000:]
set mxtics 2
set grid ytics mytics xtics mxtics
set title "Screenshot count"
set output "/home/christoffermadsen/public_html/img/screenshot_count.svg"
set ylabel "Count"
set yrange [0:]
set ytics 100
set mytics 2
plot ]
users.each do |user|
plotstring += %Q["log/#{user}.log" using 1:2 with lines ls 1 lc rgb '##{colors[user]}' t "#{user}", \\\n]
end
plotstring += %Q[
set title "Screenshot size"
set output "/home/christoffermadsen/public_html/img/screenshot_size.svg"
set ylabel "Size (MB)"
set yrange [0:]
set ytics 10
set mytics 1
plot ]
users.each do |user|
colour = "%06x" % (rand * 0xffffff)
plotstring += %Q["log/#{user}.log" using 1:($3/10**6) with lines ls 1 lc rgb '##{colors[user]}' t "#{user}", \\\n]
end
output = File.open("plotscript","w")
output << plotstring
output.close
`gnuplot plotscript`