在R中显示多个置信区间

时间:2011-10-06 19:29:21

标签: r

我有一个数据框,其行对应参数的置信区间的上限和下限。如果有n行,则有n个变量。有两列,一列具有较低的置信区间限制“较低”,一列具有“上限”。行名称对应于变量名称。像这样的东西

      lower  upper  
y1      7.923  9.22
y2      7.105  8.74 
y3      8.185  9.54 
y4      8.157  9.51 

我想创建一个图表,将这些置信区间显示为条形,最好在每一端都有法兰。

如果有人能告诉我这样做的好方法,我将不胜感激!

由于 PS

4 个答案:

答案 0 :(得分:6)

bwplot中的{p> lattice制作了盒子和胡须图:

library(lattice)
bwplot(lower+upper~var, data=dat)

有关详细信息,请参阅?bwplot?lattice

enter image description here


通常,您可以通过让绘图功能为您总结数据来使用R的全部功率。例如:

dat <- data.frame(
  var <- sample(paste("y", 1:4, sep=""), 100, replace=TRUE),
  val <- rnorm(100)
  )

plot(val~factor(var), data=dat, col="cyan")

enter image description here

答案 1 :(得分:2)

以下是惯用的ggplot2解决方案。还有其他几种geoms适用于此类情节。例如,尝试替换为geom_crossbar。有关详细信息,请访问the ggplot2 webpage

cidf = data.frame(
   var   = c('y1', 'y2', 'y3', 'y4'),
   lower = c(7.923, 7.105, 8.185, 8.157),
   upper = c(9.22, 8.74, 9.54, 9.51)
)

require(ggplot2)
p1 <- ggplot(cidf) + 
  geom_errorbar(aes(x = var, ymin = lower, ymax = upper), width = 0.2)

答案 2 :(得分:0)

我已经设法找到一种方法来使用内置的boxplot命令。我不得不将数据框更改为矩阵:

ci <- as.matrix(cidf)
boxplot(ci[1,],ci[2,],ci[3,],ci[4,])

我仍然有兴趣知道在ggplotbwplot中提供更好的方法,或任何其他相关建议。

PS

答案 3 :(得分:0)

最后,我对ggplot有一个很好的解决方案。感谢上面的回复

p1 <- ggplot(cidf) +

geom_errorbar(aes(x = row.names(ciddf), ymin = lower, ymax = upper), width = 0.2) +

xlab("Variables") +

coord_flip() + opts(title = "Confidence intervals for Variables")

p1