首页 > 解决方案 > 将计数添加到 X 轴标签中的每个组

问题描述

我有一个类似于这个的分组条形图

我想在 X 轴的“演员”标签下方添加每个组的计数,例如以较小文本显示的演员数量。我无法计算每个组的数量。

以下是我到目前为止所拥有的

data <- read.csv("employee.txt", sep = "\t" , header = TRUE)
df1<-tibble(data)
df1<- mutate(df1, emp_class = cut(emp_type))
df1<- mutate(df1, emp_class = cut(LPA_CN, breaks = seq(10, 80, by = 20))) 
my_ggp <- ggplot(df1, aes(x=as.factor(Employee), fill=as.factor(emp_class)))+geom_bar(aes( y=..count../tapply(..count.., ..x.. ,sum)[..x..]*100), position="dodge") + ylab('% of total') +xlab("") + labs(fill = "Types") 
my_ggp + theme(text = element_text(size = 20)) 

我将不胜感激任何帮助。

标签: rggplot2

解决方案


这是 iris 数据集的示例:此处使用的方法是添加带有标签的列:mutate(x_axis = paste(Species, n, sep = "\n"))

# preparing data:

iris1 <- iris %>% 
    group_by(Species) %>% 
    add_count() %>%  
    mutate(x_axis = paste(Species, n, sep = "\n")) %>% 
    pivot_longer(-c(Species, n, x_axis))

# plot
ggplot(iris1, aes(x=x_axis, fill=Species)) + 
    geom_bar(aes( y=..count../tapply(..count.., ..x.. ,sum)[..x..]*100), 
             position="dodge") +
    ylab('% of total') +
    xlab("") + labs(fill = "Types") 

在此处输入图像描述


推荐阅读