Files
linguist/samples/R/git-punchcard
2015-04-17 14:09:05 +12:00

32 lines
954 B
R
Executable File

#! /usr/bin/env Rscript
# vim: filetype=r:
ParseDates <- function(lines) {
dates <- matrix(unlist(strsplit(lines, " +")), ncol=6, byrow=TRUE)
days <- dates[,1]
times <- dates[,4]
hours <- matrix(unlist(strsplit(times, ":")), ncol=3, byrow=TRUE)[,1]
all.days <- c("Sun", "Sat", "Fri", "Thu", "Wed", "Tue", "Mon")
all.hours <- 0:23
data.frame( Day = factor(days , levels=all.days)
, Hour = factor(hours, levels=all.hours)
)
}
Main <- function() {
lines <- system("git log --format=%ad", intern=TRUE)
punchcard <- as.data.frame(table(ParseDates(lines)))
punchcard <-
( ggplot2::ggplot(punchcard, ggplot2::aes(y=Day, x=Hour))
+ ggplot2::geom_point(ggplot2::aes(size=Freq))
+ ggplot2::scale_size(range=c(0, 15))
)
ggplot2::ggsave( filename = "punchcard.png"
, plot = punchcard
, width = 10
, height = 5
)
}
Main()