You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:18:04