У меня есть данные, где я смотрю на разницу в росте между монокультурой и смешанной культурой для двух разных видов. Кроме того, я сделал график, чтобы мои данные были понятны.
Мне нужна гистограмма с планками погрешностей, весь набор данных, конечно, больше, но для этого графика это data.frame
со средствами для гистограммы.
plant species means
Mixed culture Elytrigia 0.886625
Monoculture Elytrigia 1.022667
Monoculture Festuca 0.314375
Mixed culture Festuca 0.078125
С этими данными я построил график в ggplot2
, где plant
находится на оси x -, а means
на оси y -, и я использовал фасет для разделения видов.
Это мой код:
limits <- aes(ymax = meansS$means + eS$se, ymin=meansS$means - eS$se)
dodge <- position_dodge(width=0.9)
myplot <- ggplot(data=meansS, aes(x=plant, y=means, fill=plant)) + facet_grid(. ~ species)
myplot <- myplot + geom_bar(position=dodge) + geom_errorbar(limits, position=dodge, width=0.25)
myplot <- myplot + scale_fill_manual(values=c("#6495ED","#FF7F50"))
myplot <- myplot + labs(x = "Plant treatment", y = "Shoot biomass (gr)")
myplot <- myplot + opts(title="Plant competition")
myplot <- myplot + opts(legend.position = "none")
myplot <- myplot + opts(panel.grid.minor=theme_blank(), panel.grid.major=theme_blank())
Пока все в порядке. Однако я хочу добавить две разные горизонтальные линии в двух гранях. Для этого я использовал этот код:
hline.data <- data.frame(z = c(0.511,0.157), species = c("Elytrigia","Festuca"))
myplot <- myplot + geom_hline(aes(yintercept = z), hline.data)
Однако, если я это сделаю, я получу график с двумя дополнительными гранями, где нанесены две горизонтальные линии. Вместо этого я хочу, чтобы горизонтальные линии были нанесены на грани с полосами, а не создавали две новые грани. Кто-нибудь знает, как это решить.
Я думаю, будет понятнее, если я поставлю график, который я создаю сейчас: