我有一个数据框,其行对应参数的置信区间的上限和下限。如果有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
答案 0 :(得分:6)
bwplot
中的{p> lattice
制作了盒子和胡须图:
library(lattice)
bwplot(lower+upper~var, data=dat)
有关详细信息,请参阅?bwplot
和?lattice
。
通常,您可以通过让绘图功能为您总结数据来使用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")
答案 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,])
我仍然有兴趣知道在ggplot
或bwplot
中提供更好的方法,或任何其他相关建议。
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