程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图?

开发过程中遇到使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图的问题如何解决?下面主要结合日常开发的经验,给出你关于使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图的解决方法建议,希望对你解决使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图有所启发或帮助;

我有一个与下面给出的示例数据集非常相似的数据集:

| category | Subcategory | ID | State | Population |
|----------|-------------|----|-------|------------|
| A        | chair       | 1  | CA    | 100        |
| A        | desk        | 2  | CA    | 150        |
| A        | chair       | 3  | NY    | 80         |
| E        | fan         | 4  | AZ    | 60         |
| E        | ac          | 5  | PA    | 55         |
| B        | chair       | 6  | PA    | 78         |
| E        | fan         | 7  | PA    | 90         |
| B        | table       | 8  | PA    | 120        |
| A        | bed         | 9  | UT    | 105        |
| A        | chair       | 10 | NY    | 156        |
| A        | desk        | 11 | NY    | 99         |

以下是数据框:

category= c("A","A","E","B","A")
subcategory = c("chair","desk","chair","fan","ac","table","bed","desk")
ID = c(1,2,3,4,5,6,7,8,9,10,11)
population = c(100,150,80,60,55,78,90,120,105,156,99)
df= data.frame(category,subcategory,ID,population,StringsAsFactors = T)

如果我们查看表格,每个类别 A、B 和 E 的列 'ID' 的总数为 6,3(基本上,每个类别的出现次数)。现在,我一直想使用 ggplot2 为属于前 2 个类别的每个子类别绘制一个分组条形图(前 2 个由“ID”列的计数决定)。因此,我的输出应该只显示类别 A 和 E,并且列 ID 的计数应该针对属于每个子类别的 y 轴绘制(如下所示):

使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图

我的代码块根据每个类别的 ID 计数为我提供了前 2 个子类别,而我希望根据前 2 个类别的 ID 计数绘制所有子类别。

解决方法

@H_262_25@

df %>% add_count(category,name = 'rank') %>%
  filter(dense_rank(desc(rank)) %in% 1:2) %>%
  count(category,subcategory) %>%
  ggplot(aes(x = category,y = n,fill = subcategory)) +
  geom_col(position = 'dodge') +
  geom_text(aes(label = n),position = position_dodge(1),vjust = 1)

使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图

大佬总结

以上是大佬教程为你收集整理的使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图全部内容,希望文章能够帮你解决使用 ggplot2 为前 2 个类别中的每个子类别绘制分组条形图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:使用