public
Created

Box plot a distribution of sleeping habits

  • Download Gist
sleeping-habits.R
R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
library("ggplot2")
library("reshape")
 
getData = function() {
SOURCE=Sys.glob('/home/power/.thunderbird/*/*/*/*/Sent Mail')
return(readLines(SOURCE))
}
 
getMatches = function(data) {
matched_lines = grep('^Date:.*, .*-0\\d+', data, value=T)
return(gsub('Date:.*, (.*-0\\d+).*', '\\1', matched_lines))
}
 
lines = getData()
matches = getMatches(lines)
dates = lapply(matches, function(f) {strptime(f, format="%d %b %Y %H:%M:%S %z")})
df = ldply(dates, unlist)
df$year = df$year + 1900
df_counts = count(df, vars=c("year", "hour"))
 
for (year in df_counts$year) {
m = df_counts$year == year
df_counts$freq[m] = df_counts$freq[m] / sum(df_counts$freq[m])
}
 
p = ggplot(df_counts, aes(x=year, y=hour)) +
scale_x_continuous(limits=c(2004, 2012)) +
scale_y_datetime() +
geom_tile(aes(fill=freq)) +
scale_fill_gradient()
 
show(p)

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.