【发布时间】:2015-04-21 03:56:23
【问题描述】:
这是部分数据:
CHAIN <- rep(1:4, 2)
variable <- rep(c("EMPFT", "EMPFT2"), each=4)
variable <- factor(variable, levels=c("EMPFT", "EMPFT2"))
value <- c(9.371,4.444,8.688,9.740,10.433,5.394,7.906,8.616)
mean <- rep(c(8.061,8.087), each=4)
df <- data.frame(CHAIN, variable, value, mean)
我想创建一个闪避的条形图,每个值都位于相应条形上方。然后我想要一行来显示每个变量的平均值,并在该行的右侧显示值。
ggplot(df, aes(x=variable, y=value, fill=factor(CHAIN))) +
geom_bar(stat="identity", position="dodge") +
scale_fill_manual(name="Chain", values = c("darkblue", "orange", "green", "red"), breaks=c(1,2,3,4), labels=c("Chain 1", "Chain 2", "Chain 3", "Chain 4")) +
geom_text(aes(label=value), position=position_dodge(width=0.9), vjust=-0.25) +
geom_errorbar(data=df, aes(y=mean, ymax=mean, ymin=mean), size=0.75, linetype="dashed") +
geom_text(aes(y = mean, label=mean), position=position_dodge(width=0.9)) +
ggtitle("Chain vs EMPFT") +
theme(legend.title = element_text(color="black", size=16, face="bold")) +
theme(legend.text = element_text(color="black", size=12)) +
xlab("") + ylab("Value")
产生以下内容:http://i.imgur.com/qfkQGp5.png
有没有办法将值 8.061 和 8.087 放在相应行的右侧?
为澄清而编辑:user1362215 与我正在寻找的内容很接近。理想情况下,值 8.061 将位于 EMPFT 链 1 柱的左侧,而 8.087 将位于 EMPFT2 链 4 柱的右侧,并且在其他柱上没有重复。
【问题讨论】: