首页 > 解决方案 > 如何使用 ggplot2 在 R 中绘制箱线图的比较

问题描述

我有一个数据框,其中包含列格式的三个变量(n、参数、平均值)。n 取值 25、50 或 100。参数取值“是”或“否”。平均值采用数值。类似于这里的非常简化的版本:

n     Parametric     Mean
25       Yes          1.2
25       No           1.5
50       Yes          0.9
50       No           1.1
100      Yes          1.0
100      No           1.2

我想制作一个箱线图,比较三个不同 n 值中的每一个的参数平均值(具有参数 = 是的平均值)与非参数平均值(具有参数 = 否的平均值)。

类似于下图: https ://www.sthda.com/sthda/RDoc/figure/ggplot2/ggplot2-box-plot-box-plot-multiple-groups-data-visualization-1.png

除了我希望我的图例是参数化的:是或否,x 值为 n,y 值为平均值。

编码:

    # Create boxplot comparisons
    ggplot(dataMean, aes(x=n, y=Mean, color=Parametric))+
        geom_boxplot()

只给我一些有两个箱线图的东西,一个用于参数=是,一个用于参数=否。我正在寻找一个比较每个 n 值的 parametric=yes 与 parametric=no 的图。所以最终我想要 6 个箱线图(每个 n 值有 2 个箱线图),颜色由它们的参数列协调。

我应该如何组织我的数据才能达到这个结果?然后什么代码会用这 6 个箱线图创建一个图?

标签: rdataframeggplot2boxplot

解决方案


也许facet_wrap()可以帮助你。我可以用ToothGrowth数据集证明这一点:

data("ToothGrowth")
ggplot(ToothGrowth, aes(x = supp, y = len, fill = supp)) + 
  geom_boxplot(position = position_dodge()) +
  facet_wrap(~dose)

情节是这样的:

在此处输入图像描述


推荐阅读