R 中未按组对齐的边际箱线图

需要帮助

我有一个每组不同颜色的密度图,我想在顶部为每组添加一个边际箱线图。但是箱线图中的分组没有正确完成,两者都显示相同的数据。

set.seed(123)
library(ggplot2)
library(ggExtra)
library(data.table)
Data <- data.table(x = rnorm(100),
                   group = rep(c("group1", "group2"), times = c(30, 70)))
Data[group == "group1", x := x + 3]

p <-
  ggplot(Data, aes(x = x, fill = group, colour = group)) +
  geom_density(alpha = 0.5)

p %>% ggMarginal(type = "boxplot", 
                 margins = "x", 
                 size = 5,
                 groupColour = TRUE,
                 groupFill = TRUE)

在此处输入图片说明

更新:使用 geom_point 它确实有效:

p <-
  ggplot(Data, aes(x = x, y = x, fill = group, colour = group)) +
  geom_point(alpha = 0.5)

p %>% ggMarginal(type = "boxplot",
                 margins = "x",
                 size = 5,
                 groupColour = TRUE,
                 groupFill = TRUE)

在此处输入图片说明

那么,为什么它不能与geom_density?

林志

如 的帮助文件中所述?ggMarginal,该函数需要 .ggplot2 散点图p

以下将起作用:

p2 <- ggplot(Data, aes(x = x, fill = group, colour = group)) +
  geom_point(aes(y = 0.1), alpha = 0) + # add an invisible scatterplot geom as the first layer
  geom_density(alpha = 0.5)

p2 %>% ggMarginal(type = "boxplot", 
                 margins = "x", 
                 size = 5,
                 groupColour = TRUE,
                 groupFill = TRUE)

阴谋

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章