Files
failnix/scripts/charts/single_scatter.r
T

38 lines
1.1 KiB
R

library(ggplot2)
# Usage: Rscript single_scatter.r exp_name queries_dir charts_dir [faults_file]
# TODO: Allow filtering resulttypes (or at least exclude OK_MARKER)
args <- commandArgs(trailingOnly = TRUE)
experiment <- args[1]
queries_dir <- args[2]
charts_dir <- args[3]
faults_file <- if (length(args) >= 4) args[4] else "faults.csv"
suffix <- gsub("^faults|\\.csv$", "", faults_file)
datafile <- file.path(queries_dir, paste0(experiment, "_", faults_file))
if (!file.exists(datafile)) {
print(paste("Input file", datafile, "is missing"))
stop()
}
data <- readr::read_csv(datafile)
data$fault_address <- strtoi(data$fault_address)
tibble::glimpse(data)
plot <- ggplot(data, aes(x = fault_address, y = faults)) +
geom_point(aes(color = resulttype)) +
scale_x_continuous(
labels = function(x) sprintf("0x%X", as.integer(x))
) +
scale_y_log10() +
labs(x = "Address", y = "Faults", color = "Type") +
theme_minimal()
dir.create(charts_dir, showWarnings = FALSE, recursive = TRUE)
ggsave(
file.path(charts_dir, paste0(experiment, "_scatter", suffix, ".svg")),
plot = plot,
)