如何使用数字x值在ggplot中创建一个盒子/小提琴图?

时间:2015-08-28 20:20:55

标签: r ggplot2 histogram boxplot violin-plot

我想用2D数值数据创建一个盒子或小提琴图,就像图1A和1B中给出的那样(Goodman, et al., Science, 2003),如下所示:

2D boxplot

在给定x-y数据的情况下,是否有直观的方法在ggplot2中执行此操作?

基本上,我认为我需要先对x数据进行bin,然后汇总y数据进行绘图,但我不知道如何利用ggplot函数来实现这一点。

1 个答案:

答案 0 :(得分:1)

由于您没有提供示例数据,我正在使用随机数据显示一个基本示例。 您可以使用函数cut然后boxplot创建中断以对数据进行分组,以创建图表。

  

set.seed(12)
y <- rnorm(1000)
x <- rnorm(1000)
rng <- seq(-3, 3, 0.5)
boxplot(y ~ cut(x, breaks = rng), las = 2)

enter image description here

  

使用ggplot2

set.seed(12)
y <- rnorm(1000)
x <- rnorm(1000)
df <- data.frame(x = cut(x, breaks=rng), y= y)
ggplot(data = df, aes(x= x , y= y)) + geom_boxplot(aes(fill = x))

enter image description here