Skip to content

Commit

Permalink
Add box plot drawing script
Browse files Browse the repository at this point in the history
  • Loading branch information
serpent7776 committed May 2, 2024
1 parent f2dc9db commit 95fa9b2
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions extras/boxplot_xml.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
library(XML)
library(ggplot2)

args <- commandArgs(trailingOnly = TRUE)
data <- xmlParse(args[1])

for (test_case in data["//TestCase"]) {
test_case_name <- xpathSApply(test_case, "./@name", paste)
results <- xpathSApply(test_case, ".//BenchmarkResults")
samples <- xpathSApply(test_case, ".//sample", xmlValue)
counts <- xpathSApply(test_case, ".//BenchmarkResults", function(r) {
xmlGetAttr(r, "samples", default = 0, converter = as.integer)
})
names <- xpathSApply(test_case, ".//BenchmarkResults/@name", paste)

if (length(names) == 0 || sum(counts) == 0) next
names <- rep(names, counts)

df <- data.frame(
methods = names,
samples = as.numeric(samples)
)

p <- ggplot(df, aes(x = methods, y = samples, fill = methods)) +
geom_boxplot(size = 0.5, staplewidth = 0.5) +
theme(axis.text.x = element_text(angle = -45, vjust = 1, hjust = 0)) +
labs(x = "Benchmark", y = "Time [ns]", title = test_case_name, fill = "Benchmark") +
scale_y_continuous(limits = c(0, NA))
print(p)
test_case_name |>
gsub(pattern = "\\s", replacement = "_") |>
paste(".png", sep = "") |>
ggsave()
}

0 comments on commit 95fa9b2

Please sign in to comment.