找不到对象但存在ggplot2

时间:2016-01-01 22:36:47

标签: r ggplot2 label geom-bar

我正在尝试制作带有误差条的条形图,我还想添加字母标签,以指示各组之间的统计显着性。但是,当我添加标签代码时,我收到以下消息:

Error in eval(expr, envir, enclos) : object 'treatment.area' not found

以下是我用来生成图表的代码:

# This data frame calculates statistics for each treatment.
data.summary.area <- data.frame(treatment.area = levels(shapes.a$Exposure),
  mean.a=tapply(shapes$Area, shapes$Exposure, mean),
  n.a=tapply(shapes$Area, shapes$Exposure, length),
  sd.a=tapply(shapes$Area, shapes$Exposure, sd))

# Precalculate standard error of the mean (SEM)
data.summary.area$sem.a <- data.summary.area$sd.a/sqrt(data.summary.area$n.a)

# Precalculate margin of error for confidence interval
data.summary.area$me <- qt(1-alpha/2, df=data.summary.area$n.a)*data.summary.area$sem
#Get some stats
 label.area.cor <- data.frame(Group=c("CON CCCP", "CON DMSO", "HF CCCP", "HF DMSO"),
Value = c(0.15, 0.18, 0.16, 0.25))
# Make the plot
require(ggplot2)

png('barplot-sem-mito.area.lab.stat.png')
ggplot(data.summary.area, aes(x = treatment.area, y = mean.a)) +  
geom_bar(position = position_dodge(), stat="identity", 
        fill=c('red', 'red4', 'forestgreen', 'darkgreen')) + 
geom_errorbar(aes(ymin=mean.a-sem.a, ymax=mean.a+sem.a)) +
ggtitle("Mitochondria Area after 24h CCCP exposure, GV oocytes") +   xlab("Exposure")+ 
   ylab(expression(paste("Area, u"^"2"))) +
   theme_bw()+  geom_text(data = label.area.cor, 
                      aes(label=c("a", "b", "c", "d")))+
   theme(panel.grid.major = element_blank())
dev.off()

1 个答案:

答案 0 :(得分:0)

所以看到这是一个下雨的下午,我这样做了:

set.seed(1234)
n <- 50
shapes <- data.frame(Exposure=sample(c("CON CCCP","CON DMSO","HF CCCP","HF DMSO"),n,
                                       replace=T),Area=runif(n,0,10))

data.summary.area <- data.frame(treatment.area = levels(shapes$Exposure),
                                mean.a=tapply(shapes$Area, shapes$Exposure, mean),
                                n.a=tapply(shapes$Area, shapes$Exposure, length),
                                sd.a=tapply(shapes$Area, shapes$Exposure, sd))

alpha <- 0.05

# Precalculate standard error of the mean (SEM)
data.summary.area$sem.a <- data.summary.area$sd.a/sqrt(data.summary.area$n.a)

# Precalculate margin of error for confidence interval
data.summary.area$me <- qt(1-alpha/2, df=data.summary.area$n.a)*data.summary.area$sem.a
#Get some stats
label.area.cor <- data.frame(Group=c("CON CCCP","CON DMSO","HF CCCP","HF DMSO"),
                             Value = c(0.15, 0.18, 0.16, 0.25))
# Make the plot
require(ggplot2)

#png('barplot-sem-mito.area.lab.stat.png')
ggplot(data.summary.area, aes(x = treatment.area, y = mean.a))  +
   geom_bar(position = position_dodge(), stat="identity", 
            fill=c('red', 'red4', 'forestgreen', 'darkgreen')) +
   geom_errorbar(aes(ymin=mean.a-sem.a, ymax=mean.a+sem.a)) +
   ggtitle("Mitochondria Area after 24h CCCP exposure, GV oocytes") +   
   xlab("Exposure") +
   ylab(expression(paste("Area, u^2"))) + 
   theme_bw()  +
   geom_text(data=label.area.cor,aes(x=Group,y=Value,label=c("a","b","c","d")),size=8)+
   theme(panel.grid.major = element_blank()) 

#dev.off()

产生这个:

enter image description here