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

使用ggpubr与ggbreak绘图时,无法移除y轴标题中的'y.position'

解决ggbreak与ggpubr联用导致y轴标题异常的问题

问题现象

使用ggbreak拆分并缩放图表y轴,同时通过ggpubr的stat_pvalue_manual添加统计p值时,y轴标题被错误替换为y.position,无法正常显示原本的轴标题(示例中为len)。

解决方案

问题源于两个包图层交互时的轴标题继承问题,只需显式指定y轴标题即可覆盖异常值,同时保留轴拆分和p值标注功能,有两种实现方式:

方式1:在scale_y_break中指定标题

直接在scale_y_break函数中通过name参数设置y轴标题:

library(ggplot2)
library(ggbreak) 
library(ggpubr)
library(dplyr)

df <- ToothGrowth

bxp <- ggboxplot(df, x= "dose", y = "len", fill = "dose")

stat.test1 <- compare_means(
  len ~ dose, data = df,
  method = "t.test"
) %>%
  mutate(y.position = c(29, 35, 39))

p <- bxp + 
  stat_pvalue_manual(stat.test1, label = "p.adj") +
  scale_y_break(c(10, 10.5), scale = 2, name = "len") # 显式设置y轴标题

p

方式2:用ylab()单独设置标题

如果已经添加了scale_y_break,可以在图层末尾用ylab()函数单独指定标题:

p <- bxp + 
  stat_pvalue_manual(stat.test1, label = "p.adj") +
  scale_y_break(c(10, 10.5), scale = 2) +
  ylab("len") # 单独设置y轴标题

原理说明

stat_pvalue_manual在传递参数时会临时使用y.position变量,scale_y_break在处理轴时错误继承了这个变量名作为轴标题,通过显式指定标题可以强制覆盖这个异常值,恢复原本的轴标签。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:07:07