【问题标题】:box plot in groups [R]分组箱线图 [R]
【发布时间】:2016-09-14 01:21:37
【问题描述】:

我有表格的数据

x <- matrix(rnorm(600), nrow = 100, ncol = 6)
x <- cbind(x, c(rep(1, 50), rep(2, 50)))
colnames(x) <- c("a", "b", "c", "d", "e", "f", "group")

每列的箱线图(没有“外围”点)可以这样制作:

library(ggplot2)
x <- as.data.frame(x)
xmelt <- melt(x)
boxplot(data = xmelt, value~variable, outlwd = 0)

我想要一个由 6 组箱线图组成的图,按“a”、“b”、...、“f”分组,其中每个组(例如“a”)都有带有值的箱线图“组”的不同值的“a”。这应该可以使用ggplot2,但我不断收到错误。最后,箱线图需要使用“组”变量进行着色。因此,在每个字母“a”、...、“f”上方有一组 2 个(或更多,如果“组”采用更多不同的值“)箱线图,根据“组”值采用颜色。

【问题讨论】:

    标签: r ggplot2 boxplot


    【解决方案1】:

    这可能使用基本的boxplot 是可能的,但使用ggplot2 会更容易。

    您可以像以前一样使用reshape2::melt,但将组指定为id.vars,然后在组上加上美学

    ggplot(melt(x, id.vars='group')) + 
      geom_boxplot(aes(variable, value, color=factor(group)), outlier.colour=NA)
    

    编辑添加要像在boxplot 调用中一样删除异常值,请使用outlier.colour(根据this answer)。 outlier.color 也有效,至少在 ggplot2 2.1.0.

    【讨论】:

    • 这非常简单。是否也可以像我在正常的箱线图函数中那样删除“外围”点?
    • 太好了,您的编辑有一个小错字,outlier.color 对我不起作用,outlier.colour 可以。
    • 谢谢。颜色实际上适用于(更新?)版本的 ggplot 但我编辑了
    猜你喜欢
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 2020-05-22
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2013-05-11
    相关资源
    最近更新 更多