我有一份数据,研究两种不同物种在单一生长条件和混合生长条件下的生长差异。此外,我绘制了一张图表以更清晰地展示数据。
我想要一个带误差棒的条形图,当然整个数据集比这个图表更大,但是对于这个图表,这是用于条形图平均值的 data.frame。
目前为止还不错。但是,我想在两个面板中添加两条不同的水平线。为此,我使用了以下代码:
然而,如果我这样做,就会得到一个绘制了两个额外分面的图形,其中绘制了两条水平线。相反,我希望在具有条形图的分面中绘制水平线,而不是创建两个新分面。 有人知道如何解决这个问题吗?
我认为,如果我现在放出我创建的图形,这将使其更清晰:
我想要一个带误差棒的条形图,当然整个数据集比这个图表更大,但是对于这个图表,这是用于条形图平均值的 data.frame。
plant species means
Mixed culture Elytrigia 0.886625
Monoculture Elytrigia 1.022667
Monoculture Festuca 0.314375
Mixed culture Festuca 0.078125
使用这些数据,我在ggplot2
中制作了一个图表,其中植物位于x轴上,平均值位于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)
然而,如果我这样做,就会得到一个绘制了两个额外分面的图形,其中绘制了两条水平线。相反,我希望在具有条形图的分面中绘制水平线,而不是创建两个新分面。 有人知道如何解决这个问题吗?
我认为,如果我现在放出我创建的图形,这将使其更清晰:
abline
是你要找的吗? - Popdput(means)
将数据提供给我们。 - Tyler Rinker