在 R 中使用三个分类变量绘制条形图

use*_*330 3 r ggplot2

我的数据框与此类似

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)
Run Code Online (Sandbox Code Playgroud)

我想要得到这样的条形图以及该图下的表格来显示数字:

在此输入图像描述

情节 G、A、G、P 应该是葡萄、苹果、古巴和梨

如果我们能在该图下有一个表格来查看这些值,那就太好了。这已在 Excel 中简单完成。

Ale*_*lok 5

您需要ggplot将每个感兴趣的变量映射到美学或方面。所以类似的东西可以工作:

ggplot(df) +
  geom_bar(aes(x=Fruit, fill=Food),
           position = "dodge") +
  facet_wrap(~Gender)
Run Code Online (Sandbox Code Playgroud)

包含 3 个变量计数的条形图

要添加表格,您可以简单地单独计算它,然后将其转换为图形元素。

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)
Run Code Online (Sandbox Code Playgroud)

上面的图和下面的表