2017-02-23 42 views
1

Я пытаюсь поместить панель ошибок на средние значения из фрейма данных, который имеет три независимые переменные и нанесен как facet_grid. Однако нижеприведенный график помещает ошибки в неправильные грани. Может ли кто-нибудь помочь мне? enter image description hereВ ggplot2 генерируют строки ошибок через грани в данных с несколькими независимыми переменными

Пожалуйста, смотрите ниже примерных данных и связанных с ними код:

life <- rep(c("1d", "2d", "4d"), 2, each = 2) 
trt <- rep(c("c1", "c2"), 6) 
species <- rep(c("SP1", "SP2"), each = 6) 
mean_v <- runif(12, 12, 45) 
sem_v <- runif(12, 1, 4) 
data1 <- data.frame(life, trt, species, mean_v, sem_v) 
plot1 <- ggplot(data1, aes(x = trt, y = mean_v, group = species, fill = species)) 
plot1 + geom_bar(stat = "identity", position = "dodge") + 
     facet_grid(~life) + 
     geom_errorbar(aes(ymin = data1$mean_v - data1$sem_v, 
          ymax = data1$mean_v + data1$sem_v, 
          width = 0.2), 
         position = position_dodge(width = 0.90), 
         group = data1$trt) 

Большое спасибо заранее.

ответ

0

Решение, как представляется, должно указывать position=position_dodge(width=0.9) как в geom_bar, так и в geom_errorbar.

library(ggplot2) 

plot1 <- ggplot(data1, aes(x=trt, y=mean_v, group=species, fill=species)) + 
     geom_bar(stat="identity", position=position_dodge(width=0.9)) + 
     facet_grid(. ~ life) + 
     geom_errorbar(aes(ymin=mean_v - sem_v, ymax=mean_v + sem_v), 
         width=0.2, position=position_dodge(width=0.9)) 

ggsave("dodged_barplot.png", plot=plot1, height=4, width=6, dpi=150) 

enter image description here

+0

Спасибо! Я добавлял position_dodge (width = 0.9) только в барах ошибок. –