我有一个具有长度值的不同条件的数据集。 我可以用它制作直方图/密度图,并可以将其分面包裹以与控制条件进行比较。
我还可以制作单独的图,将控制与特定条件进行比较(即具有透明度的重叠密度图)。这有助于我查看与对照相比每个条件的值的分布。
但是,我想并排查看所有条件的比较,例如当我使用 Facetwrap 时。
例如,如果这是我在数据集“test”中的数据: |状况 |尺寸| | -------- | -------------- | |控制| 3 | |控制| 4 | |控制| 4 | |控制| 5 | |条件1| 1 | |条件1| 2 | |条件1| 2 | |条件1 | 3 | |条件 2 | 5 | |条件 2 | 6 | |条件 2 | 6 | |条件 2 | 7 |
这就是我制作密度图小面包裹的方法:
test %>%
ggplot(mapping = aes(x = Size, fill = Condition)) +
geom_density(alpha = 0.2) +
facet_wrap(vars(Condition))
这是我个人的重叠密度图(我创建了一个新数据集,其中仅包含我想要比较的 2 个条件):
test_compare <- test %>%
filter(Condition == "Control" | Condition == "Condition 1")
test_compare %>%
ggplot(mapping = aes(x = Size, fill = Condition)) +
geom_density(alpha = 0.2)
我想要一个网格,可以在其中看到每个条件与控件的比较。有办法做到这一点吗?
编辑:这本质上是@MrFlick 评论中链接的内容
您应该能够使用“控制”数据创建第二个数据框,并添加第二个
geom_density()
调用以独立于任何分面添加控制数据。
可重现的示例,因为您没有提供任何数据。
dat <- data.frame(Size = 0:100)
dat <- dat %>%
mutate(Condition = case_when(Size >= 75 ~ "C1",
Size >= 50 & Size < 75 ~ "C2",
Size >= 25 & Size < 50 ~ "C3",
Size >= 0 & Size < 25 ~ "Control",
TRUE ~ "NA"),
Control = case_when(str_detect(Condition, "Control") ~ "Control",
TRUE ~ "Sample"))
dat.control <- dat %>%
select(Size, Control)
ggplot(dat %>% filter(Condition != "Control"), aes(x = Size)) +
geom_density(data = dat.control %>% filter(Control == "Control"), aes(x = Size), alpha = 0.2, fill = "orange") +
geom_density(alpha = 0.2, aes(fill = Condition)) +
facet_wrap(~Condition)