首页 > 解决方案 > 关于使用 ggplot2 绘制 95% 区间的问题

问题描述

我有一个包含几列的数据框,我需要为每列绘制箱线图和某种区间图(分别为 2.5% 和 97.5%)。

我的数据集如下所示:

set.seed(123)
x1=rnorm(100,0,1)
x2=rnorm(100,0,0.5)
x3=rnorm(100,0,0.6)
data_x=data.frame(x1,x2,x3)

我能够使用以下代码行绘制此数据的箱线图:

datax_long=data_x %>% gather(x ,value ,x1:x3)
ggplot(data=datax_long, aes(y= x, x=value, fill=x))+ geom_boxplot()

在此处输入图像描述

现在我需要为每一列绘制一个区间图。这是一条从第 2.5% 到第 97.5% 的水平线。每个变量的值范围应与箱线图中大致相同。

这是我们可以使用ggplot2package in做的事情R吗?

谢谢

标签: rggplot2plot

解决方案


像这样的东西应该工作:

ggplot(datax_long, aes(x = value, y = x)) +
  stat_summary(geom = "errorbarh", 
               fun.min = function(z) quantile(z, .025), 
               fun = mean,
               fun.max = function(z) quantile(z, 0.975), color = "red") +
  stat_summary(geom = "point", fun = mean, color = "blue")

推荐阅读