#=========================================================
# PREAMBLE
#=========================================================
# load the plotting library
suppressMessages(library(ggplot2))
#library(gridExtra)
#library(ggExtra)
#library(tikzDevice)
#library(Hmisc)
#library(pastecs)
theme_set(theme_bw())
options(scipen=999) # turn-off scientific notation like 1e+48
# size of point for scatterplots
POINT_SIZE = 0.1
#POINT_SIZE = 1
# timeout
TIMEOUT = params$timeout
TIMEOUT_VAL = 1.05 * TIMEOUT
ERR_VAL = 1.3 * TIMEOUT
# saturate
TIME_MIN = 0.01 # seconds
BIG_SIZE=3
SMALL_SIZE=2
# FUNCTIONS
read_file <- function(file) {
filename = paste0(file)
df <- read.csv2(filename,
header=TRUE,
sep=";",
dec=",",
comment.char="",
na.strings=c("TO", "ERR"),
quote="\"",
strip.white=TRUE,
allowEscapes=FALSE,
stringsAsFactors=FALSE)
return(df)
}
plot_scatter_log <- function(df, xlab, ylab, xstring=xlab, ystring=ylab) {
pscat <- ggplot(df, aes_string(x=xlab, y=ylab)) +
geom_point(size=POINT_SIZE) +
geom_abline(size=0.1) +
geom_vline(size=0.1, xintercept=STATES_TIMEOUT, linetype="dashed") +
geom_hline(size=0.1, yintercept=STATES_TIMEOUT, linetype="dashed") +
geom_rug(alpha = 0.2) +
scale_x_log10() +
scale_y_log10() +
theme(axis.text.y = element_text(angle = 90, hjust = 0.5)) +
coord_fixed(xlim = c(STATES_MIN, STATES_TIMEOUT), ylim = c(STATES_MIN, STATES_TIMEOUT)) +
labs(
#title="Title",
#subtitle="Subtitle",
x=xstring,
y=ystring)
return(pscat)
}
make_tikz <- function(file, picture, width=2.5, height=2.5) {
font_size <- 1
tikz(file=file, onefile=T, width=width, height=height)
plot(picture)
garbage <- dev.off()
}
make_pdf <- function(file, picture, width=5, height=5) {
pdf(file=file, onefile=T, width, height)
plot(picture)
garbage <- dev.off()
}
df <- read_file(params$file)
orig_size <- nrow(df)
# Sanitize
#df[df == 'ERR'] <- NA
#df[df == 'TO'] <- NA
# need to be changed
STATES_MIN = 1
STATES_MAX = max(max(df[,"seminat.States"], na.rm=TRUE), max(df[,"spot.States"], na.rm=TRUE))
STATES_TIMEOUT <- STATES_MAX * 1.3
df[is.na(df)] <- STATES_TIMEOUT
plot_scatter_log(df, "ranker.States", "spot.States")

plot_scatter_log(df, "ranker.States", "seminat.States")

plot_scatter_log(df, "ranker.States", "roll.States")

plot_scatter_log(df, "ranker.States", "schewe.States")

plot_scatter_log(df, "ranker.States", "piterman.States")

plot_scatter_log(df, "ranker.States", "goal.df.States")

plot_scatter_log(df, "ranker.States", "safra.States")

plot_scatter_log(df, "seminat.States", "spot.States")

plot_scatter_log(df, "seminat.States", "roll.States")

plot_scatter_log(df, "seminat.States", "schewe.States")

plot_scatter_log(df, "seminat.States", "piterman.States")

plot_scatter_log(df, "seminat.States", "goal.df.States")

plot_scatter_log(df, "seminat.States", "safra.States")

plot_scatter_log(df, "seminat.States", "spot.States")

plot_scatter_log(df, "roll.States", "spot.States")

plot_scatter_log(df, "roll.States", "seminat.States")

LS0tCnRpdGxlOiAiQkEgQ29tcGxlbWVudGF0aW9uIEFuYWx5c2lzIgpwYXJhbXM6CiAgZmlsZTogcmVzdWx0cy9yYW5kb20tdG8zMDAuY3N2CiAgdGltZW91dDogMzAwICMgc2Vjb25kcwpvdXRwdXQ6CiAgaHRtbF9ub3RlYm9vazoKICAgIGNvZGVfZm9sZGluZzogaGlkZQogIHBkZl9kb2N1bWVudDogZGVmYXVsdAogIGh0bWxfZG9jdW1lbnQ6CiAgICBkZl9wcmludDogcGFnZWQKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCi0tLQoKYGBge3J9CiM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBQUkVBTUJMRQojPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgojIGxvYWQgdGhlIHBsb3R0aW5nIGxpYnJhcnkKc3VwcHJlc3NNZXNzYWdlcyhsaWJyYXJ5KGdncGxvdDIpKQojbGlicmFyeShncmlkRXh0cmEpCiNsaWJyYXJ5KGdnRXh0cmEpCiNsaWJyYXJ5KHRpa3pEZXZpY2UpCiNsaWJyYXJ5KEhtaXNjKQojbGlicmFyeShwYXN0ZWNzKQoKdGhlbWVfc2V0KHRoZW1lX2J3KCkpCgpvcHRpb25zKHNjaXBlbj05OTkpICAjIHR1cm4tb2ZmIHNjaWVudGlmaWMgbm90YXRpb24gbGlrZSAxZSs0OAoKIyBzaXplIG9mIHBvaW50IGZvciBzY2F0dGVycGxvdHMKUE9JTlRfU0laRSA9IDAuMQojUE9JTlRfU0laRSA9IDEKCiMgdGltZW91dApUSU1FT1VUID0gcGFyYW1zJHRpbWVvdXQKVElNRU9VVF9WQUwgPSAxLjA1ICogVElNRU9VVAoKRVJSX1ZBTCA9IDEuMyAqIFRJTUVPVVQKCiMgc2F0dXJhdGUKVElNRV9NSU4gPSAwLjAxICMgc2Vjb25kcwoKQklHX1NJWkU9MwpTTUFMTF9TSVpFPTIKCiMgRlVOQ1RJT05TCnJlYWRfZmlsZSA8LSBmdW5jdGlvbihmaWxlKSB7CiAgZmlsZW5hbWUgPSBwYXN0ZTAoZmlsZSkKICBkZiA8LSByZWFkLmNzdjIoZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgIGhlYWRlcj1UUlVFLAogICAgICAgICAgICAgICAgICBzZXA9IjsiLAogICAgICAgICAgICAgICAgICBkZWM9IiwiLAogICAgICAgICAgICAgICAgICBjb21tZW50LmNoYXI9IiIsCiAgICAgICAgICAgICAgICAgIG5hLnN0cmluZ3M9YygiVE8iLCAiRVJSIiksCiAgICAgICAgICAgICAgICAgIHF1b3RlPSJcIiIsCiAgICAgICAgICAgICAgICAgIHN0cmlwLndoaXRlPVRSVUUsCiAgICAgICAgICAgICAgICAgIGFsbG93RXNjYXBlcz1GQUxTRSwKICAgICAgICAgICAgICAgICAgc3RyaW5nc0FzRmFjdG9ycz1GQUxTRSkKCiAgcmV0dXJuKGRmKQp9CgpwbG90X3NjYXR0ZXJfbG9nIDwtIGZ1bmN0aW9uKGRmLCB4bGFiLCB5bGFiLCB4c3RyaW5nPXhsYWIsIHlzdHJpbmc9eWxhYikgewogIHBzY2F0IDwtIGdncGxvdChkZiwgYWVzX3N0cmluZyh4PXhsYWIsIHk9eWxhYikpICsKICAgIGdlb21fcG9pbnQoc2l6ZT1QT0lOVF9TSVpFKSArCiAgICBnZW9tX2FibGluZShzaXplPTAuMSkgKwogICAgZ2VvbV92bGluZShzaXplPTAuMSwgeGludGVyY2VwdD1TVEFURVNfVElNRU9VVCwgbGluZXR5cGU9ImRhc2hlZCIpICsKICAgIGdlb21faGxpbmUoc2l6ZT0wLjEsIHlpbnRlcmNlcHQ9U1RBVEVTX1RJTUVPVVQsIGxpbmV0eXBlPSJkYXNoZWQiKSArCiAgICBnZW9tX3J1ZyhhbHBoYSA9IDAuMikgKwogICAgc2NhbGVfeF9sb2cxMCgpICsKICAgIHNjYWxlX3lfbG9nMTAoKSArCiAgICB0aGVtZShheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChhbmdsZSA9IDkwLCBoanVzdCA9IDAuNSkpICsKICAgIGNvb3JkX2ZpeGVkKHhsaW0gPSBjKFNUQVRFU19NSU4sIFNUQVRFU19USU1FT1VUKSwgeWxpbSA9IGMoU1RBVEVTX01JTiwgU1RBVEVTX1RJTUVPVVQpKSArCiAgICBsYWJzKAogICAgICAjdGl0bGU9IlRpdGxlIiwKICAgICAgI3N1YnRpdGxlPSJTdWJ0aXRsZSIsCiAgICAgIHg9eHN0cmluZywKICAgICAgeT15c3RyaW5nKQogIHJldHVybihwc2NhdCkKfQoKbWFrZV90aWt6IDwtIGZ1bmN0aW9uKGZpbGUsIHBpY3R1cmUsIHdpZHRoPTIuNSwgaGVpZ2h0PTIuNSkgewogIGZvbnRfc2l6ZSA8LSAxCiAgdGlreihmaWxlPWZpbGUsIG9uZWZpbGU9VCwgd2lkdGg9d2lkdGgsIGhlaWdodD1oZWlnaHQpCiAgcGxvdChwaWN0dXJlKQogIGdhcmJhZ2UgPC0gZGV2Lm9mZigpCn0KCm1ha2VfcGRmIDwtIGZ1bmN0aW9uKGZpbGUsIHBpY3R1cmUsIHdpZHRoPTUsIGhlaWdodD01KSB7CiAgcGRmKGZpbGU9ZmlsZSwgb25lZmlsZT1ULCB3aWR0aCwgaGVpZ2h0KQogIHBsb3QocGljdHVyZSkKICBnYXJiYWdlIDwtIGRldi5vZmYoKQp9CmBgYAoKYGBge3J9CmRmIDwtIHJlYWRfZmlsZShwYXJhbXMkZmlsZSkKb3JpZ19zaXplIDwtIG5yb3coZGYpCmBgYAoKfCBXaGF0ICAgICB8ICAgICAgICAgICAgICAgfAp8LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS18CnwgKipTaXplKiogfCBgciBvcmlnX3NpemVgIHwKCgpgYGB7cn0KIyBTYW5pdGl6ZQojZGZbZGYgPT0gJ0VSUiddIDwtIE5BCiNkZltkZiA9PSAnVE8nXSA8LSBOQQoKIyBuZWVkIHRvIGJlIGNoYW5nZWQKU1RBVEVTX01JTiA9IDEKU1RBVEVTX01BWCA9IG1heChtYXgoZGZbLCJzZW1pbmF0LlN0YXRlcyJdLCBuYS5ybT1UUlVFKSwgbWF4KGRmWywic3BvdC5TdGF0ZXMiXSwgbmEucm09VFJVRSkpCgpTVEFURVNfVElNRU9VVCA8LSBTVEFURVNfTUFYICogMS4zCmRmW2lzLm5hKGRmKV0gPC0gU1RBVEVTX1RJTUVPVVQKCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJyYW5rZXIuU3RhdGVzIiwgInNwb3QuU3RhdGVzIikKcGxvdF9zY2F0dGVyX2xvZyhkZiwgInJhbmtlci5TdGF0ZXMiLCAic2VtaW5hdC5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAicmFua2VyLlN0YXRlcyIsICJyb2xsLlN0YXRlcyIpCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJyYW5rZXIuU3RhdGVzIiwgInNjaGV3ZS5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAicmFua2VyLlN0YXRlcyIsICJwaXRlcm1hbi5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAicmFua2VyLlN0YXRlcyIsICJnb2FsLmRmLlN0YXRlcyIpCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJyYW5rZXIuU3RhdGVzIiwgInNhZnJhLlN0YXRlcyIpCgpwbG90X3NjYXR0ZXJfbG9nKGRmLCAic2VtaW5hdC5TdGF0ZXMiLCAic3BvdC5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAic2VtaW5hdC5TdGF0ZXMiLCAicm9sbC5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAic2VtaW5hdC5TdGF0ZXMiLCAic2NoZXdlLlN0YXRlcyIpCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJzZW1pbmF0LlN0YXRlcyIsICJwaXRlcm1hbi5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAic2VtaW5hdC5TdGF0ZXMiLCAiZ29hbC5kZi5TdGF0ZXMiKQpwbG90X3NjYXR0ZXJfbG9nKGRmLCAic2VtaW5hdC5TdGF0ZXMiLCAic2FmcmEuU3RhdGVzIikKCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJzZW1pbmF0LlN0YXRlcyIsICJzcG90LlN0YXRlcyIpCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJyb2xsLlN0YXRlcyIsICJzcG90LlN0YXRlcyIpCnBsb3Rfc2NhdHRlcl9sb2coZGYsICJyb2xsLlN0YXRlcyIsICJzZW1pbmF0LlN0YXRlcyIpCmBgYAo=