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

如何移除ggplotly箱线图的须线及对应悬浮提示内容

ggplot转plotly箱线图移除须线、隐藏离群点交互提示的解决方案

移除plotly对象中的须线

ggplotly转换后的箱线图须线存放在每个数据系列的line属性中,直接将须线宽度设为0即可完全隐藏,同时可以直接清空离群点的marker属性,比设置opacity=0更彻底:

# 接你生成p2 <- ggplotly(p1)的代码
# 遍历所有箱线图数据系列,多分组场景也适用
for (i in seq_along(p2$x$data)) {
  # 隐藏须线
  p2$x$data[[i]]$line$width <- 0
  # 彻底删除离群点对象,而非仅视觉隐藏
  p2$x$data[[i]]$marker <- list()
}

移除悬浮提示中不需要的内容

悬浮提示由每个数据系列的hoverinfo和text属性控制,你可以自定义提示内容仅保留需要的信息,也可以直接关闭多余内容的展示:

for (i in seq_along(p2$x$data)) {
  # 指定仅展示自定义的text内容
  p2$x$data[[i]]$hoverinfo <- "text"
  # 自定义悬浮提示的字段,可根据需求调整
  p2$x$data[[i]]$text <- paste0(
    "分组: ", p2$x$data[[i]]$name, "<br>",
    "下四分位: ", round(p2$x$data[[i]]$lower, 2), "<br>",
    "中位数: ", round(p2$x$data[[i]]$middle, 2), "<br>",
    "上四分位: ", round(p2$x$data[[i]]$upper, 2)
  )
}

如果不需要对应系列的悬浮提示,也可以直接将hoverinfo设为"skip"即可完全关闭。

自定义stat_summary场景适配

你给出的自定义统计函数绘制箱线图的场景,上述代码完全适用,转换后的plotly对象结构和普通geom_boxplot生成的结构一致,生成p2后直接运行上述两段循环代码即可生效。

完整可运行测试代码

library(plotly) 
library(ggplot2)

# 基础箱线图场景测试
p1 <- ggplot(mtcars,
             aes(
               x = factor(vs),
               y = mpg
             )
)+
  geom_boxplot(outlier.shape = NA, coef = 0)

p2 <- ggplotly(p1)

# 批量修改所有系列属性
for (i in seq_along(p2$x$data)) {
  # 隐藏须线
  p2$x$data[[i]]$line$width <- 0
  # 彻底移除离群点
  p2$x$data[[i]]$marker <- list()
  # 自定义悬浮提示
  p2$x$data[[i]]$hoverinfo <- "text"
  p2$x$data[[i]]$text <- paste0(
    "分组: ", p2$x$data[[i]]$name, "<br>",
    "下四分位: ", round(p2$x$data[[i]]$lower, 2), "<br>",
    "中位数: ", round(p2$x$data[[i]]$middle, 2), "<br>",
    "上四分位: ", round(p2$x$data[[i]]$upper, 2)
  )
}

# 查看效果
p2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:36:05