library(ggplot2)
library(showtext)
library(ggtext)
showtext_auto()
showtext_opts(dpi = 300)
font_add_google(name = "Roboto", family = "Roboto")
font_1 <- "Roboto"
n <- 14
p <- 1/2
x_obs <- 12
binom_test <- binom.test(x_obs, n, p, alternative = "greater")
p_value <- binom_test$p.value
conf_int <- binom_test$conf.int
p_ge_x_obs <- sum(dbinom(x_obs:n, size = n, prob = p))
data <- data.frame(
x = 0:n,
probability = dbinom(0:n, size = n, prob = p),
color = ifelse(0:n >= x_obs, "#C0392B", "#30394F")
)
binom_visual <- ggplot(data, aes(x = x, y = probability, fill = color)) +
geom_bar(stat = "identity") +
scale_fill_identity() +
scale_x_continuous(breaks = 0:n) +
labs(
title = "Binomial Distribution (n = 14, p = 0.5)",
x = "Number of Successes",
y = "Probability"
) +
theme_minimal() +
theme(
panel.grid.major.x = element_blank(),
panel.grid.minor = element_blank(),
plot.margin = margin(10, 10, 10, 10, "mm"),
axis.text = element_text(family = font_1, size = 7),
axis.title = element_text(family = font_1, size = 7),
axis.title.x = element_text(margin = margin(5, 0, 0, 0, 'mm')),
axis.title.y = element_text(margin = margin(0, 5, 0, 0, 'mm')),
plot.title = element_text(family = font_1, size = 10)
) +
annotate(
geom = 'richtext',
x = n+1,
y = max(data$probability) * 0.9,
label = paste0(
"<span style='color:#C0392B; font-size:8pt;font-family:Roboto;'>",
"Threshold ≥ 12 trials (days)", "<br>",
"P(X ≥ ", x_obs, ") = ", round(p_ge_x_obs, 4), "<br>",
"95% CI = [", round(conf_int[1], 4), ", ", round(conf_int[2], 4), "]</span>"),
hjust = 1, fill = NA, label.color = NA
)