Working chart output

This commit is contained in:
Neale Pickett 2010-09-07 23:44:54 -06:00
parent be2de973ce
commit f043173cf4
1 changed files with 62 additions and 33 deletions

View File

@ -1,11 +1,5 @@
#! /usr/bin/awk -f #! /usr/bin/awk -f
BEGIN {
# Every 2.5 minutes
interval = 150
tslen = 0
}
function output() { function output() {
for (t in teams) { for (t in teams) {
score = 0; score = 0;
@ -15,14 +9,27 @@ function output() {
if (score > maxscore) { if (score > maxscore) {
maxscore = score maxscore = score
} }
if (score > 0.009) {
scores_by_team_time[t, lasttime] = score scores_by_team_time[t, lasttime] = score
} }
}
timestamps[tslen++] = lasttime timestamps[tslen++] = lasttime
} }
{ BEGIN {
# High-contrast colors for accessibility
colors[0] = "e41a1c"
colors[1] = "377eb8"
colors[2] = "4daf4a"
colors[3] = "984ea3"
colors[4] = "ff7f00"
colors[5] = "ffff33"
colors[6] = "a65628"
colors[7] = "f781bf"
# Every 2.5 minutes
interval = 150
tslen = 0
while (1 == getline) {
time = $1 time = $1
team = $2 team = $2
cat = $3 cat = $3
@ -43,14 +50,36 @@ function output() {
points_by_cat_team[cat, team] += points points_by_cat_team[cat, team] += points
} }
END {
output() output()
width = lasttime - start
print "<!DOCTYPE html>"
print "<html>"
print " <head>"
print " <title>foo</title>"
print " <style type=\"text/css\">"
print " body { background: black; }"
print " </style>"
print " <script type=\"application/javascript\" src=\"file:///home/neale/src/ctf/www/plot.js\"></script>"
print " <script type=\"application/javascript\">"
print "function draw() {"
printf("p = new Plot(\"chart\", %d, %.2f)\n", width, maxscore * 1.1);
c = 0
for (team in teams) {
printf("p.line(\"#%s\",[", colors[c++ % 8])
for (i = 1; i < tslen; i += 1) { for (i = 1; i < tslen; i += 1) {
time = timestamps[i] time = timestamps[i]
print time printf("[%d,%.2f],",
for (team in teams) { time - start, scores_by_team_time[team, time])
printf(" %s: %f\n", team, scores_by_team_time[team, time])
} }
printf("]);\n");
} }
print "}"
print "window.onload = draw;"
print " </script>"
print " </head>"
print " <body>"
print " <canvas id=\"chart\"></canvas>"
print " </body>"
print "</html>"
} }