geom_text 未标记躲避的 geom_bar

Dyl*_*ell 2 r ggplot2

我似乎无法让 geom_label 来标记躲避条形图CLASS(该图被“躲避”的因素)。相反,我得到了count每个PROCY轴)的总数:

ggplot(data = df, mapping = aes(x = PROC)) +
geom_bar(mapping = aes(fill = CLASS), position = "dodge") +
geom_text(stat = "count", aes(x = PROC, label = ..count..)) +
theme(axis.title.y = element_blank(),
    axis.title.x = element_blank(),
    axis.ticks.y = element_blank(),
    axis.ticks.x = element_blank(),
    axis.text.x =  element_blank()) + 
scale_x_discrete(labels = function(x) str_wrap( 
    PROC.Labels, 
    width = 10)) +
coord_flip() 
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

此外,我不知道为什么 105geom_text标签会出现在此条形图的右侧。

jdo*_*res 6

您需要更新geom_text才能使用该position_dodge()功能。这是一个示例,与您的非常相似,使用内置的钻石数据集。我也在使用ggplot 3.0 的stat()函数,而不是不推荐使用的..count..变量。

您的标签显示在最右侧,因为它们代表您的每个组的总数,因此放置在相应的更高(更右侧)y 位置。

请注意,提供position_dodge()0.9 的宽度值对应于这样一个事实,即默认情况下,分类条(或一组躲避的条)在轴上占据其可用空间的 90%,其余 10% 用于酒吧分组。

g <- ggplot(data = diamonds, aes(x = cut, fill = color)) +
  geom_bar(position = 'dodge') +
  geom_text(stat = 'count', hjust = 0, position = position_dodge(0.9), aes(x = cut, label = stat(count))) +
  coord_flip()
print(g)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明