如何在ggplot中偏移箱线图位置使其与散点并排展示互不重叠
可以通过position_nudge()分别为散点层和箱线图层设置横向偏移,让二者在同一x轴分组下并排展示,不会重叠。
修改后可直接运行的代码
library(ggplot2) # 数据预处理部分和原代码一致 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, nudge_x = 0.15, height = 0))+ geom_boxplot(width = 0.2, position = position_nudge(x = -0.15))
参数调整说明
nudge_x参数控制横向偏移量,正负值对应向右/向左偏移,你可以根据展示需求调整数值大小,控制两个图层的间距- 若要交换箱线图和散点的左右位置,只需要将两个图层的
nudge_x正负值互换即可 - 调整箱线图的
width参数、散点的width(抖动范围)参数,可以适配不同的分组密度,避免跨组元素重叠
内容的提问来源于stack exchange,提问作者Chris Robinson
相关产品推荐
相关产品推荐

