标记一个躲闪的条形图

时间:2012-06-12 00:20:58

标签: r ggplot2

也许是因为外面的黑暗,但我无法得到这个

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)))

我的图表仍然显示产品类别“中间”的标签,而不是正确产品的上方。

看起来这看起来很简单,但我完全坚持这个

因此,非常感谢任何提示如何将标签放在正确的条形图上方。

汤姆

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)