我想用2D数值数据创建一个盒子或小提琴图,就像图1A和1B中给出的那样(Goodman, et al., Science, 2003),如下所示:
在给定x-y数据的情况下,是否有直观的方法在ggplot2中执行此操作?
基本上,我认为我需要先对x数据进行bin,然后汇总y数据进行绘图,但我不知道如何利用ggplot函数来实现这一点。
答案 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)
使用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))