如何将误差线定位在适当颜色的条的中心?
df1 <- data.frame(
supp = c("OJ","OJ","OJ","VC","VC","VC"),
dose = c(0.5,1,2,0.5,1,2),
len = c(13.23,22.7,26.06,7.98,16.77,26.14),
se = c(1.41,1.27,0.84,0.87,0.8,1.52)
)
df1$dose <- factor(df1$dose)
ggplot(df1, aes(x=dose, y=len, fill=supp)) +
geom_bar(stat="identity", position=position_dodge()) +
scale_fill_manual(name = "", values = c("deepskyblue1", "green")) +
geom_errorbar(data = df1[1:3,], aes(ymin=len-se, ymax=len+se), width=.4, colour=c("deepskyblue1"), position=position_dodge(.9)) +
geom_errorbar(data = df1[4:6,], aes(ymin=len-se, ymax=len+se), width=.4, colour=c("green"), position=position_dodge(.9))
答案 0 :(得分:13)
由于错误条的数据位于同一数据框中,条形数据不需要在data=
中提供参数geom_errorbar()
,也不需要调用{{1两次。
您应该在geom_errorbar()
中提供geom_errorbar()
ymin
和ymax
个值,aes()
中的color=supp
也会确保错误条为彩色根据{{1}}值。要获得与条形图相同的颜色,请添加具有相同颜色名称的aes()
。使用参数supp
,您可以在条形图的中心获取错误栏。
scale_color_manual()