简体   繁体   English

R:用于合并的geom_bar的ggplot2 geom_text数据标签

[英]R: ggplot2 geom_text data labels for binned geom_bar

I am new to ggplot2 and on my first try ran into a problem that is not obvious to solve: 我是ggplot2的新手,在第一次尝试时就遇到了一个无法解决的问题:

x <- data.frame(y = c(1,1,1,2,2,3,rep(c(1,2,3,4), 10)))

ggplot(x, aes(factor(y))) +
  geom_bar(fill = 2) +
  geom_text(stat="bin", aes(label = ..count..))

ggplot(x, aes(factor(y))) +
  geom_bar(fill = 2) +
  geom_text(aes(y = 5, label = y))

I can either have bar plot with correct number of observations but can not set y value to adjust positions. 我可以使用带有正确观察值的条形图,但不能设置y值来调整位置。 Or I can adjust positions but can not set labels to count number of observations. 或者,我可以调整位置,但不能设置标签来计算观察次数。

Expected result is midpoint of both - have values of graph one in positions set in graph two. 预期结果是两者的中点-在图2中设置的位置具有图1的值。

Even better, can I set y positions for every geom_text value (eg mid-bar for tall bar, then above bar for short bar)? 更好的是,是否可以为每个geom_text值设置y位置(例如,中间栏表示高栏,然后上方栏表示短栏)?

Something like this? 像这样吗

ggplot(x, aes(factor(y))) +
  geom_bar(fill = 2) +
  geom_text(stat="bin", aes(label = ..count.., y=(..count..-..count..)+5))

在此处输入图片说明

You can modify the aes() for each geom_ and you can actually supply a whole new data= parameter to each geom_ if you want special information on that layer. 您可以修改aes()每个geom_实际上,你可以提供一个全新的data=参数每个geom_ ,如果你想在该层上的特殊信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM