使用 ggplot2、qplot 或其他工具绘制多个 y 变量的箱线图

use*_*318 1 variables r function ggplot2

我正在寻找使用 x=season 和 function=event 绘制许多 y 变量的箱线图的方法。我想把很多图都画在一起,比如:

第一个图:x=season,y=var1 by function=event 第二个图:x=season,y=var1,by function=event ..

我的数据如下所示。其实我的变数还有很多。

...................................................... ......................

    event     season      var1      var2     var3
1  event_free wet.summer 14.193489 16.786347 22.65968
2  event_free       fall  3.209114  9.948187 15.44799
3       event       fall  4.564315 10.647883 34.24658
4       event       fall 20.152646 31.114422 33.04899
5  event_free       fall  3.944427  6.431695 10.27153
6  event_free       fall  9.994351 16.110569 22.73702
7  event_free       fall  3.100501  6.507310 14.37157
8  event_free     winter  2.631117        NA 13.88889
9       event     winter 20.745972 22.629357 29.27042
10      event     winter 15.929737 21.355657 36.45409
11 event_free     winter  7.383920  7.418910 11.85094
12      event     winter 17.011810 20.320714 44.18071
13      event     spring 12.501078 14.260404 39.08531
14      event     spring 26.224773 32.536549 46.90560
Run Code Online (Sandbox Code Playgroud)

...................................................... ......................

我发现了很多使用 ggplot2 或 qplot 来绘制一个 y 变量与一个函数(例如:事件,此处)的方法,但找不到如何为多个 y 变量绘制多个图。
非常感谢你的帮助!!

苗条的

eip*_*i10 5

这是一种方法ggplot2

library(reshape2)
library(ggplot2)

# Assume your data frame is named dat
dat.m = melt(dat, id.var=c("event","season"))
dat.m$season = factor(dat.m$season, levels=c("winter", "spring","wet.summer","fall"))

# If you want the two levels of event plotted side by side
ggplot(dat.m, aes(season, value, colour=event)) +
  facet_grid(. ~ variable) +
  geom_boxplot(width=0.7)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

# If you want the levels of event to be faceted (plotted in separate panels)
ggplot(dat.m, aes(season, value)) +
  facet_grid(event ~ variable) +
  geom_boxplot()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述