blob: a65c572476fff003c2b2d295019adbbf8a849712 [file] [log] [blame]
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Useful R routines for analyzing output from several cost_to_csv.py
# output and producing interesting graphs.
combine.runs <- function(times, prefix, suffix)
do.call("rbind", lapply(times, function (t)
with(read.csv(paste0(prefix, t, suffix)),
data.frame(site, kind, cost, time=t))))
get.ordered.names <- function(runs) {
means <- with(runs, tapply(cost, list(site, kind), mean))
return(names(means[,"cold"])[order(means[,"cold"])])
}
plot.warm.cold <- function(runs, main="") {
ordered.names <- get.ordered.names(runs)
n <- length(ordered.names)
par(mar=c(8,4,4,4), bg="white")
plot(NULL, xlim=c(1,25), ylim=range(runs$cost), xaxt="n",
ylab="ms", xlab="", main=main)
axis(1, 1:n, labels=ordered.names, las=2)
getdata <- function(k, t) sapply(
ordered.names, function (s) with(runs, cost[site==s & kind==k & time==t]))
for (t in unique(runs$time)) {
points(1:n, getdata("cold", t), pch=1)
points(1:n, getdata("warm", t), pch=3)
}
legend("topleft", pch=c(1, 3), legend=c("cold", "warm"))
}
plot.relative.sds <- function(runs, main="") {
sds <- with(runs, tapply(cost, list(site, kind), sd))
means <- with(runs, tapply(cost, list(site, kind), mean))
ordered.names <- get.ordered.names(runs)
n <- length(ordered.names)
par(mar=c(8,4,4,4), bg="white")
plot(NULL, xlim=c(1,25), ylim=c(0,.8),
xaxt="n", ylab="Relative SD", xlab="", main=main)
axis(1, 1:n, labels=ordered.names, las=2)
getdata <- function(k) sapply(ordered.names, function(s) (sds/means)[s, k])
points(1:n, getdata("cold"), pch=1)
points(1:n, getdata("warm"), pch=3)
legend("topleft", pch=c(1, 3), legend=c("cold", "warm"))
}