我有以下数据集,我想制作一个箱形图:
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个盒子......
我在这方面很失败......请你能帮帮我吗?我很抱歉这个基本问题。
答案 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"))