【问题标题】:How to plot multiple variables vs single x-axis using ggplot2 boxplot如何使用 ggplot2 boxplot 绘制多个变量与单个 x 轴
【发布时间】:2018-05-25 17:11:55
【问题描述】:

我有一个像这样的数据框:

df= data.frame(cond = c(rep('N', 5), rep('Y', 5)),
               var1 = rnorm(10),
               var2 = rnorm(10),
               var3= rnorm(10))

看起来像这样:

    > df
   cond       var1       var2       var3
1     N -0.6115370  0.4215755  1.6492281
2     N  0.1588611 -0.9044593 -0.5339298
3     N -1.0643301  0.1991867  0.6987310
4     N -0.8418736 -1.0986175 -0.3845572
5     N  0.3425105  0.2201171  1.2721364
6     Y  0.1737336 -0.7504061 -0.0856138
7     Y  0.9686804 -0.6037347  0.1050365
8     Y  0.1226120  1.1669462 -0.6542081
9     Y -1.0073227  0.3648727  0.6253705
10    Y -0.1099620  0.6722126 -2.2743869

我想完成一个类似于这个问题的答案所示的情节: Plot multiple variables on y-axis with the same x-axis using ggplot in r

除了我想绘制箱线图。理想情况下,我会有多个窗格,每个“varN”变量一个,每个窗格将是一组两个箱线图,varN ~ 条件。这有点类似于 lattice plot y~x|var。如何使用箱线图完成此任务?

注意:我知道我可能需要融合行 ID 和条件,我尝试过,但无法让它完全发挥作用。

【问题讨论】:

  • 我想我需要使用 facet().... 到达某个地方....

标签: r ggplot2 boxplot melt


【解决方案1】:
set.seed(1)
df= data.frame(cond = c(rep('N', 5), rep('Y', 5)),
               var1 = rnorm(10),
               var2 = rnorm(10),
               var3= rnorm(10))


df
     cond       var1        var2        var3
    1     N -0.6264538  1.51178117  0.91897737
    2     N  0.1836433  0.38984324  0.78213630
    3     N -0.8356286 -0.62124058  0.07456498
    4     N  1.5952808 -2.21469989 -1.98935170
    5     N  0.3295078  1.12493092  0.61982575
    6     Y -0.8204684 -0.04493361 -0.05612874
    7     Y  0.4874291 -0.01619026 -0.15579551
    8     Y  0.7383247  0.94383621 -1.47075238
    9     Y  0.5757814  0.82122120 -0.47815006
    10    Y -0.3053884  0.59390132  0.41794156

> library(reshape)
> library(ggplot2)

cc = melt(df)
>head(cc,15)
   cond variable      value
1     N     var1 -0.6264538
2     N     var1  0.1836433
3     N     var1 -0.8356286
4     N     var1  1.5952808
5     N     var1  0.3295078
6     Y     var1 -0.8204684
7     Y     var1  0.4874291
8     Y     var1  0.7383247
9     Y     var1  0.5757814
10    Y     var1 -0.3053884
11    N     var2  1.5117812
12    N     var2  0.3898432
13    N     var2 -0.6212406
14    N     var2 -2.2146999
15    N     var2  1.1249309

ggplot(cc,aes(cond,value))+geom_boxplot()+facet_grid(~variable)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    相关资源
    最近更新 更多