R中的标签分组条形图

时间:2019-11-02 22:53:36

标签: r ggplot2

我正在尝试将标签添加到r中的分组条形图中。 但是,我在y轴上使用percentege,我希望对标签进行计数。 我曾尝试使用geom_text()函数,但我没有多么需要使用这些参数。

key   value

A     Before
A     After
A     During
B     Before
B     Before
C     After
D     During
...

plot1

这是我需要它的一个例子:

plot2

这是我正在使用的数据示例:

data<-data.frame(x=rep(c("man", "woman"),500),reg=rep(1:5, 200), v=c(seq(100,1,length.out = 500),c(seq(1,100,length.out = 500))))

for (i in seq(0, 100, 10)) {

  print(paste("interval <", i, "-", i+10,">"))
  data %>% 
    filter(data$x == "man" & data$v >= i & data$v <= i +10) %>%   
    group_by(Region = reg) %>% 
    summarize(No_man = n()) %>%
    as.data.frame() %>%
    print()
  if (i+10 > 90) {break}
}

我还希望保留没有值的小节(标签= 0)。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

这里MWE是如何向简单的条形图添加计数标签的方法。将它们分组时,请参见下面的情况。

library(datasets)
library(tidyverse)

data <- chickwts %>% 
          group_by(feed) %>% 
          count %>% 
          ungroup %>% 
          mutate(p = n / sum(n))

ggplot(data, aes(x = feed, y = p, fill = feed)) + 
  geom_bar(stat = "identity") + 
  geom_text(stat = "identity",
            aes(label = n), vjust = -1)

Bar plot with labels.

您应该能够对数据执行相同的操作。

编辑:StupidWolf在注释中指出原始示例已将数据分组。在position = position_dodge(0.9)中添加geom_text可以解决此问题。

同样,无法访问原始数据,但这是另一个使用mtcars的MWE,显示以下内容:

library(datasets)
library(tidyverse)

data <- mtcars %>% 
  as_tibble %>% 
  transmute(gear = as_factor(gear), 
            carb = as_factor(carb), 
            cyl = cyl) %>% 
  group_by(gear, carb) %>% 
  count

ggplot(data, aes(x = gear, y = n, fill = carb)) +
  geom_bar(stat = "identity", 
           position = "dodge") +
  geom_text(aes(label = n),
            stat = "identity",
            vjust = -1,
            position = position_dodge(0.9))

Bar plot with group labels.