library(ggplot2)
library(dplyr)
library(distributional)
# Create a simple example dataset
df <- data.frame(
trt = factor(c(1, 1, 2, 2)),
resp = c(1, 5, 3, 4),
group = factor(c(1, 2, 1, 2)),
upper = c(1.1, 5.3, 3.3, 4.2),
lower = c(0.8, 4.6, 2.4, 3.6)
)
uncertain_df <- df |>
group_by(trt, group) |>
mutate(resp = dist_normal(resp, runif(1,0,0.2)),
upper = dist_normal(upper, runif(1,0,0.2)),
lower = dist_normal(lower, runif(1,0,0.2))
)
p <- ggplot(df, aes(trt, resp, colour = group))
q <- ggplot(uncertain_df, aes(trt, resp, colour = group))
# ggplot
p + geom_linerange(aes(ymin = lower, ymax = upper), linewidth=4)
#ggdibbler
q + geom_linerange_sample(aes(ymin = lower, ymax = upper), linewidth=4)
# ggplot
p + geom_pointrange(aes(ymin = lower, ymax = upper))
# ggdibbler
q + geom_pointrange_sample(aes(ymin = lower, ymax = upper))
# ggplot
p + geom_crossbar(aes(ymin = lower, ymax = upper), width = 0.2)
# ggdibbler
q + geom_crossbar_sample(aes(ymin = lower, ymax = upper), width = 0.2)
# ggplot
p + geom_errorbar(aes(ymin = lower, ymax = upper), width = 0.2)
# ggdibbler
q + geom_errorbar_sample(aes(ymin = lower, ymax = upper), width = 0.2)
Run the code above in your browser using DataLab