如何将箱线图稍微向左或向右移动其原始位置?
How can I move a boxplot slightly left or right of its original position?
我想在 ggplot 中绘制数据点和箱线图。但是,我只能让 geom_boxplot 对象位于我的数据点之上。有没有什么办法可以把它们移过来,得到一个看起来和这个相似的图形?
这是可重现的代码和一个 ggplot 对象(没有格式化),它将箱线图放在点上。 (我知道我也可以让箱线图透明,但我更愿意在数据旁边)
a = rep("a",100)
b = rep("b",100)
foo = as.data.frame(cbind(c(rep("a",100),rep("b",100)),c(rnorm(100,15,2.5),rnorm(100,17.5,3.2))))
colnames(foo) = c("series","value")
foo$series = as.factor(foo$series)
foo$value = as.numeric(foo$value)
ggplot(foo, aes(x = series, y = value))+
geom_point(position = position_jitter(width = 0.1))+
geom_boxplot(width = 0.25)
谢谢!
我认为您正在寻找位置参数中的 for position_nudge()
函数:
ggplot(foo, aes(x = series, y = value))+
geom_point(position = position_jitter(width = 0.1))+
geom_boxplot(width = 0.25, position= position_nudge(x=-.5))
将 x
参数更改为您想要的 space。
我想在 ggplot 中绘制数据点和箱线图。但是,我只能让 geom_boxplot 对象位于我的数据点之上。有没有什么办法可以把它们移过来,得到一个看起来和这个相似的图形?
这是可重现的代码和一个 ggplot 对象(没有格式化),它将箱线图放在点上。 (我知道我也可以让箱线图透明,但我更愿意在数据旁边)
a = rep("a",100)
b = rep("b",100)
foo = as.data.frame(cbind(c(rep("a",100),rep("b",100)),c(rnorm(100,15,2.5),rnorm(100,17.5,3.2))))
colnames(foo) = c("series","value")
foo$series = as.factor(foo$series)
foo$value = as.numeric(foo$value)
ggplot(foo, aes(x = series, y = value))+
geom_point(position = position_jitter(width = 0.1))+
geom_boxplot(width = 0.25)
谢谢!
我认为您正在寻找位置参数中的 for position_nudge()
函数:
ggplot(foo, aes(x = series, y = value))+
geom_point(position = position_jitter(width = 0.1))+
geom_boxplot(width = 0.25, position= position_nudge(x=-.5))
将 x
参数更改为您想要的 space。