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

如何在ggplot箱线图中将中位数文本标签改为浅色(如白色)?

在ggplot箱线图中为中位数文本着色的解决方案

嘿,针对你问的两个问题——给箱线图里的中位数文本上色,以及把它改成白色这类浅色,其实只需要在geom_text()里加个参数就能搞定,很简单!

修改后的完整可运行代码

set.seed(1)
library(plyr)
library(ggplot2)  # 别忘了加载ggplot2,原示例里没写这行哦

# 生成示例数据
DF <- data.frame(TYPE = sample(letters[1:3], 500, replace = TRUE), 
                 PROVIDER = letters[1:5], 
                 VALUE = rnorm(500))

# 按TYPE和PROVIDER分组计算中位数
meds <- ddply(DF, .(TYPE, PROVIDER), summarize, med = median(VALUE))

# 绘制带白色中位数文本的箱线图
ggplot(DF, aes(x = PROVIDER, y = VALUE)) + 
  geom_boxplot(fill = "#44546A") + 
  facet_wrap(~TYPE) + 
  geom_text(data = meds, 
            aes(y = med, label = round(med,2)), 
            size = 3, 
            vjust = -0.5,
            color = "white")  # 核心:这里指定文本颜色为白色

额外说明

  • 自定义浅色:如果你不想用白色,想换其他浅色,直接把color参数的值换成对应的颜色就行。比如淡灰色可以写color = "#f0f0f0",或者直接用颜色名称color = "lightgray";
  • 小提醒:原代码里一定要加载ggplot2包,不然ggplot()和相关图层函数会找不到哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 16:37:32