我无法弄清楚如何在R中制作包含多个箱图的单个图形,同时按列和行对数据框/矩阵进行分组.
我在R中有一个10行和500列的数据框.这些列分为2组(因子 - 1和2),现在我想要一个包含两个箱图的单个图,该数据框的每一行都受列组的影响.
防爆.
M1 N2 O1 P2 Q1 R2 # [The 1's and 2's refer to my two column groups]
A 10 11 12 13 14 15
B 15 14 13 12 11 10
C 20 21 22 23 24 25
D 25 24 23 22 21 20
Run Code Online (Sandbox Code Playgroud)
因此,对于上面的例子,我希望每行有一个带有"4个箱图对"的图,这样每个箱图对将代表对应于我的列的1和2的因子的值.
提前致谢 !!!
在这里使用的想法reshape2.由于列数多于行数,因此自然可以使用转置.
library(ggplot2)
library(reshape2)
dt <- read.table(text='
M1 N2 O1 P2 Q1 R2
A 10 11 12 13 14 15
B 15 14 13 12 11 10
C 20 21 22 23 24 25
D 25 24 23 22 21 20',header=TRUE)
dt.m <- melt(t(dt))
dt.m$Var1 <- gsub('[A-Z]','',dt.m$Var1)
Run Code Online (Sandbox Code Playgroud)
这里有两个选项可供选择:
library(ggplot2)
library(gridExtra)
p1 <- ggplot(dt.m) +
geom_boxplot(aes(x=Var2,y=value,fill=Var1))
p2 <- ggplot(dt.m) +
geom_boxplot(aes(x=Var2,y=value,fill=Var2))+
facet_grid(~Var1)
grid.arrange(p1,p2)
Run Code Online (Sandbox Code Playgroud)
