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

如何为已有侧边Beeswarm图添加左侧箱线图并保留点分布

解决方案:用Base R布局实现箱线图+蜂群图无重叠展示

不用ggplot系列包的话,直接用Base R的布局功能就能完美保留蜂群点的分布,同时在左侧添加箱线图,分两种实用方法:

方法1:左右分栏布局(推荐)

这种方法把绘图区域分成左右两部分,分别绘制箱线图和蜂群图,完全避免元素重叠,蜂群分布不受任何影响:

# 创建样本数据
x <- rnorm(300)

# 设置1行2列的布局,左侧栏宽度小(放箱线图),右侧栏宽度大(放蜂群图)
layout(matrix(c(1, 2), nrow = 1), widths = c(1, 3))

# 绘制左侧箱线图
par(mar = c(5, 1, 2, 1))  # 调整边距,减少冗余空间
boxplot(x, horizontal = TRUE, axes = FALSE, col = "lightgray")
axis(1)  # 显示x轴刻度

# 绘制右侧蜂群图
par(mar = c(5, 0, 2, 2))  # 去掉左侧边距,让两部分衔接更紧凑
beeswarm(x, pch = 19, col = "black", side = 1, axes = FALSE)
axis(1)  # 显示x轴刻度

# 添加统一的x轴标签
mtext("Value", side = 1, line = 3, outer = TRUE)

方法2:同一绘图区域叠加

如果想要在同一个坐标轴内展示,可通过调整元素位置避免重叠:

x <- rnorm(300)

# 调整绘图边距,预留左侧空间
par(mar = c(5, 2, 2, 2))

# 初始化空绘图区域,设置足够大的x轴范围
plot(NA, xlim = c(-4, 4), ylim = c(0, 2), xlab = "Value", ylab = "")

# 添加左侧箱线图,调整宽度避免和蜂群重叠
boxplot(x, horizontal = TRUE, at = 1, add = TRUE, boxwex = 0.3, col = "lightgray")

# 添加右侧蜂群图,保持原有分布
beeswarm(x, at = 1, pch = 19, col = "black", side = 1, add = TRUE)

两种方法都不会破坏蜂群点的原始分布,方法1的分栏布局更清晰,适合对比展示;方法2的叠加方式更紧凑,适合需要同一坐标轴的场景。

内容的提问来源于stack exchange,提问作者divsan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 07:54:54