多个直方图按类别

时间:2018-11-28 15:48:05

标签: r ggplot2 histogram

我是R的新手,正准备创建直方图。

我的数据如下:

                id age                               sub.types inter
1 TCGA-A8-A07O  60        Infiltrating duct carcinoma, NOS     6
2 TCGA-A7-A0CJ  65        Infiltrating duct carcinoma, NOS     6
3 TCGA-A7-A0CH  88        Infiltrating duct carcinoma, NOS     8
4 TCGA-A7-A0CG  86 Infiltrating duct and lobular carcinoma     8
5 TCGA-A7-A0CE  66        Infiltrating duct carcinoma, NOS     6
6 TCGA-A7-A0CD  75        Infiltrating duct carcinoma, NOS     7

我想创建一个直方图,以便针对每个分组年龄(30-39岁,40-49岁等) 我会看到一个按子类型划分和着色的条形图。

我想分别使用ggplot为每个组创建这样一个图,但不能一起(通过使用过滤器)来创建图

有人可以将我引向正确的答案吗?

1 个答案:

答案 0 :(得分:0)

您可以使用cut按范围分组。进一步了解here。以下是如何使用ggplot2dplyr绘制数据的示例。我已经按十年分组了。

library(ggplot2)
library(dplyr)

df <- tibble::tribble(
                   ~id, ~age,                                ~sub.types, ~inter,
        "TCGA-A8-A07O",  60L,        "Infiltrating duct carcinoma, NOS",     6L,
        "TCGA-A7-A0CJ",  65L,        "Infiltrating duct carcinoma, NOS",     6L,
        "TCGA-A7-A0CH",  88L,        "Infiltrating duct carcinoma, NOS",     8L,
        "TCGA-A7-A0CG",  86L, "Infiltrating duct and lobular carcinoma",     8L,
        "TCGA-A7-A0CE",  66L,        "Infiltrating duct carcinoma, NOS",     6L,
        "TCGA-A7-A0CD",  75L,        "Infiltrating duct carcinoma, NOS",     7L
        )

df %>% 
  group_by(age.group = cut(age, breaks= seq(0, 100, by = 10))) %>% 
  ggplot() +
  geom_bar(aes(age.group, fill = sub.types)) +
  theme_classic()

enter image description here