38 lines
1.4 KiB
R
38 lines
1.4 KiB
R
#!/usr/bin/env Rscript
|
|
source("common.R")
|
|
|
|
parser <- fig_parser(description = "Receiver CPU bar chart")
|
|
parser$add_argument("--ymin", type = "double")
|
|
parser$add_argument("--ymax", type = "double")
|
|
parser$add_argument("--ystep", type = "double",
|
|
help = "y-axis major tick spacing (omit = auto)")
|
|
args <- parser$parse_args()
|
|
|
|
runs <- read_csv(file.path(args$data, "runs.csv"), show_col_types = FALSE) %>%
|
|
prepare_solution() %>%
|
|
group_by(solution) %>%
|
|
summarise(mean_pct = mean(cpu_receiver),
|
|
sd_pct = sd(cpu_receiver), .groups = "drop")
|
|
|
|
p <- ggplot(runs, aes(x = solution, y = mean_pct, fill = solution)) +
|
|
geom_col(width = 0.6, colour = "black") +
|
|
geom_errorbar(aes(ymin = mean_pct - sd_pct, ymax = mean_pct + sd_pct),
|
|
width = 0.2) +
|
|
scale_fill_manual(values = LABEL_COLORS, guide = "none") +
|
|
labs(x = NULL, y = paste0("Average CPU (", pct_sign(), ")")) +
|
|
theme_paper() +
|
|
theme(axis.text.x = element_text(angle = 45, hjust = 1),
|
|
plot.margin = margin(2, 4, 0, 2))
|
|
|
|
if (!is.null(args$ymax)) {
|
|
ymin <- if (is.null(args$ymin)) 0 else args$ymin
|
|
p <- p + coord_cartesian(ylim = c(ymin, args$ymax))
|
|
if (!is.null(args$ystep)) {
|
|
p <- p + scale_y_continuous(breaks = seq(ymin, args$ymax, args$ystep))
|
|
}
|
|
} else if (!is.null(args$ystep)) {
|
|
p <- p + scale_y_continuous(breaks = scales::breaks_width(args$ystep))
|
|
}
|
|
|
|
save_figure(p, args)
|