Skip to content

Instantly share code, notes, and snippets.

@abegong
Created September 24, 2013 03:31
Show Gist options
  • Save abegong/6680033 to your computer and use it in GitHub Desktop.
Save abegong/6680033 to your computer and use it in GitHub Desktop.
Generate graphs from the last week of UP data.
import json
import pandas
import pylab as plt
#Load data
M = [json.loads(l) for l in file("data/snapshots.jl", 'r').readlines()]
#Day step graph
D = pandas.DataFrame(M[2]["data"])
D.columns = ["time", "steps"]
plt.vlines(D.time, D.steps, 0)
plt.savefig("graphs/daily-step-graph.png")
plt.show()
#Weekly cumulative step graphs, overlaid
for i,m in enumerate(M[:7]):
D = pandas.DataFrame(m["data"])
D.columns = ["time", "steps"]
n = D.shape[0]
plt.plot( range(n), D.steps.cumsum() )
if i==2:
plt.plot( range(n), D.steps.cumsum(), lw=4, c='black' )
plt.savefig("graphs/weekly-cumulative-steps-overlaid.png")
plt.show()
#Weekly cumulative step graphs, in sequence
for i,m in enumerate(M[:7]):
D = pandas.DataFrame(m["data"])
D.columns = ["time", "steps"]
n = D.shape[0]
plt.plot( D.time, D.steps.cumsum() )
if i==2:
plt.plot( D.time, D.steps.cumsum(), lw=4, c='black' )
plt.savefig("graphs/weekly-cumulative-steps-seq.png")
plt.show()
#Weekly skyline graph
total = 0
for i,m in enumerate(M[:7]):
D = pandas.DataFrame(m["data"])
D.columns = ["time", "steps"]
n = D.shape[0]
rev_range = range(total+n, total+2*n)
rev_range.reverse()
plt.plot( range(total, total+n), D.steps.cumsum(), c='black', lw=4 )
plt.plot( rev_range, D.steps.cumsum(), c='black', lw=4 )
total += 2*n
plt.savefig("graphs/weekly-skyline-graph.png")
plt.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment