带错误栏的ggplot2数据帧结构条形图

时间:2013-04-17 10:55:26

标签: r ggplot2 dataframe

我得到了一个包含10个测量数据集的14个科目的数据集,我想在ggplot2中制作一个条形图,其中每个主题的平均分数和错误栏(保密间隔)。但我不知道如何塑造数据以便能够制作这样的情节。

任何指针或帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

ggplot2需要长格式的数据。这意味着每个数据点必须位于不同的行上。您想要计算14个科目的平均值和CI。因此,您应该拥有一个包含Subject,average和CI列以及14行的data.frame。以下是两个主题的示例:

set.seed(1)
dat <- data.frame(Subject = c(rep("Sub1", 10), rep("Sub2", 10)),
Measure = rep(paste0("Meas", 1:10),2),
Value = rnorm(20,15,3)) 

library(plyr)
se <- function(x) sd(x)/sqrt(length(x))
dat.new <- ddply(dat, .(Subject), summarize, mean = mean(Value), 
CI = qnorm(0.975)*se(Value))

dat.new
# Data format for ggplot
#  Subject     mean       CI
#1    Sub1 15.39661 1.686627
#2    Sub2 15.74653 1.974250

library(ggplot2)

ggplot(dat.new, aes(x = Subject, y = mean, ymin = mean, ymax = mean + CI)) +
geom_bar(stat="identity") + geom_errorbar(width=0.25)

enter image description here

有关详情,请参阅ggplot2 doc's,有关ggplot2 bar plotserror bars的其他问题。