有关使用ggplot2绘制95%间隔的问题

问题描述

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

我的数据集如下:

set.seed(123)
x1=rnorm(100,1)
x2=rnorm(100,0.5)
x3=rnorm(100,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()

enter image description here

现在我需要为每列绘制一个间隔图。这是一条水平线,介于2.5%和97.5%之间。每个变量的值范围应与箱线图大致相同。

我们可以使用ggplot2中的R包来做这件事吗?

谢谢

解决方法

类似的事情应该起作用:

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",color = "blue")