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

在R中绘制带间断轴的点图:统一点大小与轴区段调整

解决带间断y轴的点图问题

统一所有点的大小

geom_dotplot的点大小是基于binwidth和轴缩放比例的相对值,而scale_y_break的轴间断缩放会打乱这种比例关系,导致不同组的点大小差异悬殊。直接改用geom_point就能用size参数设置绝对大小,保证所有点显示一致:

# 替换geom_dotplot为geom_point,设置统一点大小
p <- ggplot(d, aes(x=Condition, y=Value, color=Condition)) +
  geom_point(size = 3, position = position_dodge(width = 0.5)) +
  ylim(0, 90000)

# 保留轴间断设置
p2 <- p + 
  scale_y_break(c(10, 600), scales = 50) + 
  scale_y_break(c(2000, 12000), scales = 150)

如果需要类似dotplot的点堆叠效果,避免同组点重叠,用position_jitterdodge调整即可:

p <- ggplot(d, aes(x=Condition, y=Value, color=Condition)) +
  geom_point(size = 3, position = position_jitterdodge(jitter.width = 0.2, dodge.width = 0.5)) +
  ylim(0, 90000)

调整y轴0-10区段的显示大小

scale_y_break的scales参数控制间断后区段的缩放倍数,要让0-10区段显示更宽,增大第一个间断的scales值就行——比如把scales=50改成scales=20,这样间断后的600以上区段缩放比例变小,0-10区段的视觉占比就会变大:

p2 <- p + 
  scale_y_break(c(10, 600), scales = 20) +  # 增大scales值,放大0-10区段的显示占比
  scale_y_break(c(2000, 12000), scales = 150)

另外还可以通过scale_y_continuous的expand参数微调轴的边距,进一步优化0附近区域的显示:

p <- ggplot(d, aes(x=Condition, y=Value, color=Condition)) +
  geom_point(size = 3, position = position_dodge(width = 0.5)) +
  ylim(0, 90000) +
  scale_y_continuous(expand = expansion(mult = c(0.1, 0)))  # 调整y轴底部边距,强化0-10区域的显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:20:22