【问题标题】:Layering violin plots with geom_violin to compare distributions使用 geom_violin 分层小提琴图以比较分布
【发布时间】:2021-06-29 10:25:19
【问题描述】:

我正在尝试使用小提琴图比较组间连续变量的分布。满容易。但是,我想通过在背景中以低 alpha 值显示其中一组(参考)的分布来更容易地进行分布比较。类似这样的东西,但带有小提琴情节:

我当前的方法将数据绘制了两次。对于第一个geom_violin,我复制了参考组的数据并将其绘制为灰色。对于第二个geom_violin,我使用实际数据d。在此示例中,灰色和蓝色的两个小提琴图对于“蓝色”组应该看起来相同。但是,即使它们基于组“蓝色”的完全相同的数据,它们也不相同。

我该如何解决这个问题?还是有其他更好的方法来做到这一点?

d <- tibble(
        group = sample(c("green", "blue"), 1000, replace = TRUE, prob = c(0.7, 0.3)),
        x = ifelse(group == "green", rnorm(1000, 1, 1), rnorm(1000, 0, 3))
    )

dblue <- filter(d, group == "blue")
dblue <- bind_rows(dblue, mutate(dblue, group = "green"))

ggplot(d, aes(x = factor(group), y = x)) +
    geom_violin(data = dblue, fill = alpha("#333333", 0.2), color = alpha("#333333", 0)) +
    geom_violin(fill = alpha("#0072B2", 0.8), color = alpha("#0072B2", 0))

【问题讨论】:

    标签: r ggplot2 violin-plot


    【解决方案1】:

    scale = "width" 添加到第二个geom_violin

    ggplot(d, aes(x = factor(group), y = x)) +
      geom_violin(data = dblue, fill = alpha("#333333", 0.2), color = alpha("#333333", 0)) +
      geom_violin(fill = alpha("#0072B2", 0.8), color = alpha("#0072B2", 0),
                  scale = "width")
    

    【讨论】:

    • 太棒了。这很容易!
    猜你喜欢
    • 1970-01-01
    • 2016-06-13
    • 1970-01-01
    • 2018-01-15
    • 2023-02-15
    • 1970-01-01
    • 2012-08-02
    • 2018-05-19
    • 2022-01-23
    相关资源
    最近更新 更多