| #!/usr/bin/env Rscript |
| library(ggplot2); |
| library(plyr); |
| |
| # get __dirname and load ./_cli.R |
| args = commandArgs(trailingOnly = F); |
| dirname = dirname(sub("--file=", "", args[grep("--file", args)])); |
| source(paste0(dirname, '/_cli.R'), chdir=T); |
| |
| if (!is.null(args.options$help) || |
| (!is.null(args.options$plot) && args.options$plot == TRUE)) { |
| stop("usage: cat file.csv | Rscript bar.R |
| --help show this message |
| --plot filename save plot to filename"); |
| } |
| |
| plot.filename = args.options$plot; |
| |
| dat = read.csv( |
| file('stdin'), |
| colClasses=c('character', 'character', 'character', 'numeric', 'numeric') |
| ); |
| dat = data.frame(dat); |
| |
| dat$nameTwoLines = paste0(dat$filename, '\n', dat$configuration); |
| dat$name = paste0(dat$filename, ' ', dat$configuration); |
| |
| # Create a box plot |
| if (!is.null(plot.filename)) { |
| p = ggplot(data=dat, aes(x=nameTwoLines, y=rate, fill=binary)); |
| p = p + geom_bar(stat="summary", position=position_dodge()); |
| p = p + ylab("rate of operations (higher is better)"); |
| p = p + xlab("benchmark"); |
| p = p + theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5)); |
| ggsave(plot.filename, p); |
| } |