用 R (ggplot) 绘制二维箱线图

Vas*_*y A 5 r ggplot2

我已经用 2 个参数对数据进行了分组:

set.seed(1)
dat <- data.frame( xx=sample(10,9),
                   yy=sample(20,9),
                   group=c('A','B', 'C')  )
Run Code Online (Sandbox Code Playgroud)

我可以为每个维度绘制箱线图:

ggplot(dat, aes(x=group, y=yy, fill=group)) + geom_boxplot() 
ggplot(dat, aes(x=group, y=xx, fill=group)) + geom_boxplot() + coord_flip()
Run Code Online (Sandbox Code Playgroud)

现在我将结合这些并绘制反映两个变量数据的箱线图,如下所示: (此图像是在图形编辑器中手动制作的)

有没有什么简单的方法可以绘制这种箱线图?

Kou*_*ndy 1

这不是好的表示方式。这可能会非常令人困惑。通常该数据是这样表示的。

datPlot <- melt(dat)
ggplot(datPlot, aes(x=group, y=value, fill=variable)) + geom_boxplot() 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或者如果两个变量的范围非常不同,您可以尝试分面

ggplot(datPlot, aes(x=group, y=value, fill=group)) + geom_boxplot()
 +facet_wrap(~variable,scale="free_y")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或这个

ggplot(dat, aes(x=xx, y=yy, color=group)) + geom_point(size=3) 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述