我有10000行和5列的数据集。其中一列定义了数据的类型(因子类型的变量)。
数据是这样的:
V1 V2 V3 V4 V5 type
1.0 2.3 2.3 4.4 5.6 "1"
0.4 3.1 6.2 5.5 5.8 "2"
1.2 2.2 7.2 4.8 5.9 "3"
........
运行以下命令:
p <- ggplot(dataframe, aes(type,V1))
p + geom_boxplot()
但是,我想对所有五个变量进行此操作,并在单个图形中并行显示结果(例如,将图形堆叠在另一个图形之上)。我怎么能用R中的ggplot2呢?
答案 0 :(得分:4)
您应该将数据重新整形为长格式,然后使用分面。
library(reshape2)
df.long<-melt(dataframe,id.vars="type")
ggplot(df.long,aes(as.factor(type),value))+geom_boxplot()+
facet_grid(variable~.)
答案 1 :(得分:0)
嗨,谢谢你的回答,但我找到了另一种解决方案。
我跑了这个:
require(gridExtra)
p1 <- qplot(type, V1, data=dataframe, geom="boxplot")
p2 <- qplot(type, V2, data=dataframe, geom="boxplot")
p3 <- qplot(type, V3, data=dataframe, geom="boxplot")
p4 <- qplot(type, V4, data=dataframe, geom="boxplot")
p5 <- qplot(type, V5, data=dataframe, geom="boxplot")
grid.arrange(p1,p2,p3,p4,p5)
这实现了我想要的,而不将数据帧转换为长格式。