【问题标题】:为字符出现制作堆叠条形图
【发布时间】:2022-01-21 19:23:15
【问题描述】:

我在为三列绘制堆积条形图时遇到问题,我想尝试在 x 轴上设置两组 df$S 的所有变体(一组用于 I15I19)。然后,我想在各自的列中填写每个字符的频率。所以本质上,I15 的三列​​“NONE”、“SILENT”和“MISSENSE”,I19 的三列​​,然后用每个字符出现的次数填充它们,如果这有意义的话。但是每当我尝试绘制它时,它就会出现空白,只标记了 y 和 x 轴。我尝试使用我过去用于堆叠箱形图的代码,但没有成功。

df %>%
+   pivot_longer(-S) %>%
+   ggplot(aes(x = S, y = value, fill = c(I15, I19))


              S  I15  I19
    1      NONE  1/1 <NA>
    2      NONE  0/1  1/0
    3      NONE  1/1  1/1
    4      NONE  0/1  0/1
    5      NONE  0/0 <NA>
    6      NONE  1/1  1/1
    7      NONE  1/1  1/1
    8      NONE  0/1  1/0
    9      NONE  0/1  1/0
    10     NONE  1/1  1/1
    11     NONE  0/1  0/1
    12     NONE  1/1  1/1
    13     NONE  0/1  1/0
    14     NONE  1/1  1/1
    15 MISSENSE  0/1  0/1
    16 MISSENSE  0/1  0/1
    17     NONE <NA> <NA>
    18     NONE  0/1  1/0
    19     NONE  1/1  1/1
    20     NONE  1/1  1/1
    21     NONE  1/1  1/1
    22     NONE  1/1  1/1
    23     NONE  1/1  1/1
    24     NONE <NA> <NA>
    25     NONE <NA> <NA>
    26     NONE <NA> <NA>
    27     NONE  0/1  1/1
    28     NONE  0/1  1/1
    29     NONE  0/1  1/1
    30     NONE  1/1  1/1
    31   SILENT  1/1 <NA>
    32     NONE  1/1  1/1
    33   SILENT  1/1  1/1
    34     NONE  0/1  0/1
    35     NONE  0/1  0/1
    36     NONE  0/1  1/0
    37 MISSENSE  0/1  1/0
    38     NONE  0/1  1/0
    39   SILENT  0/1  0/0
    40     NONE  1/1  1/1
    41     NONE  0/1  1/0
    42     NONE  1/1  1/0
    43     NONE  0/1  1/0
    44     NONE  0/1  1/0
    45     NONE  0/1  0/1
    46     NONE  0/1  0/1
    47     NONE  0/1  0/1
    48     NONE  0/1  0/1
    49     NONE <NA>  0/0
    50   SILENT  0/1  0/1

【问题讨论】:

  • 您忘记提供geom_bar(stat="count",position="dodge")。而如果代码下面的数据是f,那么给fill的变量应该只有name
  • df %>% + pivot_longer(-S) %>% + ggplot(aes(x = S, y = value, fill = name)) + geom_bar(stat="count",position= "dodge") 错误:stat_count() 只能具有 x 或 y 美学。如果我运行它,我会得到这种错误
  • 确实如此,打扰您了。

标签: r ggplot2


【解决方案1】:

这有帮助吗?按组(S、名称、值)计数并为名称使用构面,以使 x 轴不那么拥挤。

df %>% 
  pivot_longer(-S) %>% 
  count(S, name, value) %>% 
  ggplot(aes(S, n)) + 
  geom_col(aes(fill = value)) + 
  facet_grid(name ~ .)

结果:

【讨论】:

  • 喘口气,非常感谢
猜你喜欢
  • 2021-02-26
  • 2014-12-28
  • 2022-11-23
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-11
相关资源
最近更新 更多