也许是因为外面的黑暗,但我无法得到这个
Position geom_text on dodged barplot
处理我相当简单的数据框
fs <- data.frame(productcategory=c("c2","c2"), product=c("p4", "p5"), ms1=c(2,1))
plot <- ggplot(data=NULL)
plot +
geom_bar(data=fs, aes(x=productcategory, y=ms1, weight=ms1, fill=product),stat="identity", position="dodge") +
geom_text(data=fs, aes(label = ms1, x = productcategory, y=ms1+0.2), position=position_dodge(width=1)))
我的图表仍然显示产品类别“中间”的标签,而不是正确产品的上方。
看起来这看起来很简单,但我完全坚持这个
因此,非常感谢任何提示如何将标签放在正确的条形图上方。
汤姆
答案 0 :(得分:4)
由于您已经为每个地理位置单独定义了美学,geom_text
并没有意识到您正在通过填充变量productcategory
细分x变量product
。
您可以通过将fill=product
添加到aes()
geom_text
的{{1}}来获取所需的图表,也可以尝试在原始ggplot()
中定义尽可能多的美学调用,以便所有的geoms自动获取这些美学,如果它们特定于那个特定的geom,你只需要定义它们。
plot2 <- ggplot(data=fs, aes(x=productcategory, y=ms1, fill=product)) +
geom_bar(stat="identity", position="dodge") +
geom_text(aes(label=ms1, y =ms1 + 0.2), position=position_dodge(width=1))
print(plot2)