置信区间箱线图
Confidence interval box plots
我想在 ggplot 中创建一个类似于箱线图的图表,除了箱子的高度反映了围绕平均值的 95% 置信区间。我最终会覆盖平均横杆和原始数据点,但主要症结在于创建自定义“框”。 geom_box 似乎没有这个能力,我在使用 geom_rect 时遇到了麻烦,因为 x 轴是绝对的,所以我不知道 xmin 和 xmax 应该放什么?或者也许有比 geom_rect 更好的方法?我知道 pirateplot 会创建这样的图表,但我发现他们的格式选项太有限了。
谢谢,Wythe(下面的代表)
id <- (1:20)
female <- rnorm(20, mean = 5, sd = 1)
male <- rnorm(20, mean = 7, sd = 2)
df <- data.frame(x,y,id) %>%
pivot_longer(cols = !(id), names_to = 'sex', values_to = 'score')
sumdf <- df %>%
group_by(sex) %>%
summarize(mean = mean(score), n = n(),
SE = sd(score)/sqrt(n),
CI = SE*1.96)
ggplot(data = sumdf, aes(sex, mean)) +
geom_rect(mapping = aes(ymin = mean-CI, ymax = mean+CI, xmin = ?, xmax = ?),
position=position_dodge(.92))
您可以使用 stat = "identity"
和 geom_boxplot
按原样绘制汇总统计数据:
ggplot(
data = sumdf,
mapping = aes(
x = sex,
lower = mean - CI,
middle = mean,
upper = mean + CI,
ymin = mean - CI,
ymax = mean + CI
)
) +
geom_boxplot(stat = "identity")
我想在 ggplot 中创建一个类似于箱线图的图表,除了箱子的高度反映了围绕平均值的 95% 置信区间。我最终会覆盖平均横杆和原始数据点,但主要症结在于创建自定义“框”。 geom_box 似乎没有这个能力,我在使用 geom_rect 时遇到了麻烦,因为 x 轴是绝对的,所以我不知道 xmin 和 xmax 应该放什么?或者也许有比 geom_rect 更好的方法?我知道 pirateplot 会创建这样的图表,但我发现他们的格式选项太有限了。
谢谢,Wythe(下面的代表)
id <- (1:20)
female <- rnorm(20, mean = 5, sd = 1)
male <- rnorm(20, mean = 7, sd = 2)
df <- data.frame(x,y,id) %>%
pivot_longer(cols = !(id), names_to = 'sex', values_to = 'score')
sumdf <- df %>%
group_by(sex) %>%
summarize(mean = mean(score), n = n(),
SE = sd(score)/sqrt(n),
CI = SE*1.96)
ggplot(data = sumdf, aes(sex, mean)) +
geom_rect(mapping = aes(ymin = mean-CI, ymax = mean+CI, xmin = ?, xmax = ?),
position=position_dodge(.92))
您可以使用 stat = "identity"
和 geom_boxplot
按原样绘制汇总统计数据:
ggplot(
data = sumdf,
mapping = aes(
x = sex,
lower = mean - CI,
middle = mean,
upper = mean + CI,
ymin = mean - CI,
ymax = mean + CI
)
) +
geom_boxplot(stat = "identity")