r - 在 R 中使用三个分类变量绘制条形图
问题描述
我的数据框与此类似
df<-read.table (text=" Gender Fruit Food
Male Pear Yes
Female Pear Yes
Male Grape Yes
Female Apple No
Male Grape No
Male Pear No
Male Guba Yes
Male Grape No
Female Apple No
Female Pear Yes
Female Apple Yes
Male Guba No
Female Guba No
Male Pear Yes
Male Apple Yes
Male Pear No
Female Pear Yes
Male Guba No
", header=TRUE)
我想得到这样的条形图以及该图下的表格以显示数字:
在情节 G、A、G、P 中应为 Grape、Apple、Guba 和 Pear
如果我们可以在这个图下有一个表格来查看这些值,那就太好了。这已经在 Excel 中简单地完成了。
解决方案
ggplot
您需要将您感兴趣的每个变量映射到美学或方面。所以这样的事情可以工作:
ggplot(df) +
geom_bar(aes(x=Fruit, fill=Food),
position = "dodge") +
facet_wrap(~Gender)
要添加表格,您可以简单地单独计算它,然后将其转换为图形元素。
p_grph <- ggplot(df) +
geom_bar(aes(x=Fruit, fill=Food),
position = "dodge") +
facet_wrap(~Gender)
p_table <- df %>%
group_by(Gender, Fruit, Food) %>%
summarize(count=n()) %>%
gridExtra::tableGrob()
gridExtra::grid.arrange(p_grph, p_table)
推荐阅读
- yii2 - Yii2:Rest API 返回 xml 而不是 json
- unetstack - Where do I find the the set of protocols available to use for each layer in the unet stack?
- protractor - protractor chromedriver 版本(CLI 与 VSC)错误
- redirect - 我找不到重定向
- file - 打开一个文件并写一些单词然后读取它一无所获
- firebase - 当我打开我的颤振应用程序时,它总是显示登录屏幕几秒钟,即使我已经在上次会话中登录。在那之后主页
- java - 升级spring boot:Rest Template Bean Creation因循环依赖而失败
- javascript - 如何在使用 Yarn 2 的包中查找 ES5 兼容性问题?(类似于 are-you-es5)
- marshalling - Marshal.Copy 导致暗恋
- flutter - 如何在当前 Dart 中编码代数数据类型?