分组箱线图,然后在 r 中列

Posted

技术标签:

【中文标题】分组箱线图,然后在 r 中列【英文标题】:Boxplot by group and then column in r 【发布时间】:2019-11-28 03:40:59 【问题描述】:

如何制作箱线图,以使箱线图中的每组箱都包含数据框中的变量列。

例如使用 mpg 数据集:

head(mpg)

# A tibble: 234 x 11
   manufacturer model      displ  year   cyl trans      drv     cty   hwy fl    class  
   <chr>        <chr>      <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr>  
 1 audi         a4           1.8  1999     4 auto(l5)   f        18    29 p     compact
 2 audi         a4           1.8  1999     4 manual(m5) f        21    29 p     compact
 3 audi         a4           2    2008     4 manual(m6) f        20    31 p     compact
 4 audi         a4           2    2008     4 auto(av)   f        21    30 p     compact
 5 audi         a4           2.8  1999     6 auto(l5)   f        16    26 p     compact
 6 audi         a4           2.8  1999     6 manual(m5) f        18    26 p     compact
 7 audi         a4           3.1  2008     6 auto(av)   f        18    27 p     compact
 8 audi         a4 quattro   1.8  1999     4 manual(m5) 4        18    26 p     compact
 9 audi         a4 quattro   1.8  1999     4 auto(l5)   4        16    25 p     compact
10 audi         a4 quattro   2    2008     4 manual(m6) 4        20    28 p     compact
# ... with 224 more rows

所以在每个 cyl 组 (4,5,6,8) 中,我想为每个变量/列 cty、hwy 和 displ 绘制箱线图。

通常,将 ggplot 中的填充设置为因子变量,但在这种情况下,我有 3 个变量。

它应该看起来像这样:

【问题讨论】:

用谷歌图表怎么样?developers.google.com/chart/interactive/docs/gallery/… 查看本指南:sthda.com/english/wiki/… 【参考方案1】:

您需要将三个变量的数据转换为长格式。这里是 data.tablemelt 函数的示例,但您会很容易找到与 tydr 相同的示例:

library(ggplot2)
library(data.table)

mpg <- setDT(copy(mpg))
mpg_plot <- melt(mpg,measure.vars = c("cty","hwy","displ"),value.name = "val",variable.name = "var")

ggplot(mpg_plot, aes(x = as.factor(cyl),y = val,fill = var))+
  geom_boxplot()+
  theme_light()

【讨论】:

是的..我也很接近。 mpg %&gt;% select(cyl, cty, hwy, displ) %&gt;% gather(key, value, -cyl) %&gt;% ggplot() + aes(factor(cyl), value, fill = factor(key)) + geom_boxplot() 我新的 tydr nijas 很接近 :)

以上是关于分组箱线图,然后在 r 中列的主要内容,如果未能解决你的问题,请参考以下文章

使用 R 中的数据框中的重复/分组行制作分组箱线图

ggplot 分组箱线图中的平均值 (R)

R - 在箱线图中排序

R语言分组箱线图添加显著性标记简单小例子

如何获得带有垂直子图的分组箱线图

如何用R中的样本组制作特定行的箱线图