The R package ggstudent provides an extension to `ggplot2`

for creating two types of continuous confidence interval plots (Violin
CI and Gradient CI plots), typically for the sample mean. These plots
contain multiple user-defined confidence areas with varying colours,
defined by the underlying t-distribution used to compute standard
confidence intervals for the mean of the normal distribution when the
variance is unknown.

Two types of plots are available, a gradient plot with rectangular areas, and a violin plot where the shape (horizontal width) is defined by the probability density function of the t-distribution.

See also the related paper and repository

Here is an example:

```
library("magrittr")
library("dplyr")
library("ggplot2")
library("scales")
<- c(0.999, 0.95, 0.9, 0.8, 0.5)
ci_levels <- length(ci_levels)
n <- factor(ci_levels, levels = ci_levels)
ci_levels %>% dplyr::group_by(group) %>%
PlantGrowth ::summarise(
dplyrmean = mean(weight),
df = dplyr::n() - 1,
se = sd(weight)/sqrt(df + 1)) %>%
::full_join(
dplyrdata.frame(group =
rep(levels(PlantGrowth$group), each = n),
level = ci_levels), by = "group") -> d
<- ggplot(data = d, aes(group)) +
p geom_student(aes(mean = mean, se = se, df = df,
level = level, fill = level), draw_lines = c(0.95, 0.5))
<- scales::seq_gradient_pal("#e5f5f9", "#2ca25f")
g + scale_fill_manual(values = g(seq(0, 1, length = n))) + theme_bw() p
```

See also the R package ggnormalviolin for creating violin plots based on normal distribution.