我有一些这样的数据:
site <- c('twitter', 'facebook', 'gplus')
bouncerate <- c(35, 29, 17)
conversionrate <- c(20, 30, 32)
users <- c(350, 800, 42)
df <- data.frame(site, bouncerate, conversionrate, users) %>% melt()
我正在密谋:
ggplot(subset(df, variable!='users'), aes(x=site, y=value)) +
geom_bar(stat="identity", aes(fill=variable), position="dodge") +
coord_flip() +
scale_fill_brewer(palette = "Set1”)
正如您所看到的,我正在尝试绘制“费率”变量。但我还想在条形图的右侧放下“用户”变量的值。它看起来像这样:
所以我的问题是,如何在那里获得那些用户数量?我想也许geom_label可以做到这一点,但我看不出如何将标签的坐标绑定到集群。
而且,虽然上面的例子没有显示出来,但如果拥有最多用户数的群集位于顶部,那么我会很高兴,其余的则来自那里。
答案 0 :(得分:4)
以下是使用geom_text的方法:
ggplot(subset(df, variable!='users'), aes(x=site, y=value)) +
geom_bar(stat="identity", aes(fill=variable), position="dodge") +
coord_flip() +
scale_fill_brewer(palette = "Set1") +
geom_text(data=subset(df, variable=="users"),
aes(x=site, y=40,
label=paste("(", value ,"\n", variable, ")", sep = "")))