R box一次绘制几个变量

时间:2016-05-02 13:59:54

标签: r boxplot

我有以下数据集,我想制作一个箱形图:

July<-c("Closed","Open")
Cistus<-c(10.8, 18.9)
CS<-c(2.004, 3.9)
Oak<-c(7.4, 12.4)
OS<-c(0.9,2.1)

df<-data.frame(July, Cistus, CS, Oak, OS)

我希望我的箱形图在x轴上有Cistus和Oak,每个都有两个盒子(打开和关闭)。总共有4个盒子......

我在这方面很失败......请你能帮帮我吗?我很抱歉这个基本问题。

2 个答案:

答案 0 :(得分:1)

我会使用reshape2来安排您的data.frame。然后,您可以在boxplot中使用公式,所以:

library(reshape2)
boxplot(July + variable ~ value, melt(df))

每组有多个值和一些颜色:

df2 <- data.frame(July=rep(c("Closed", "Open"), each=5),
                  Cistus=runif(10),
                  CS=runif(10),
                  Oak=runif(10),
                  OS=runif(10))

boxplot(value ~ July + variable, melt(df2), col=c("grey10", "grey50"))

这是你要找的吗?

答案 1 :(得分:1)

这是对Vincent代码的修改,但是对所需类别进行了子集化:

library(reshape2)
#reshape into long format
dfnew<-melt(df, "July")
#subset down to just Cistus and Oak
dfnew<-droplevels(dfnew[dfnew$variable %in% c("Cistus", "Oak"),])
#plot
boxplot(value ~ July+variable, data=dfnew, las=2, col=c("grey10", "grey50"))