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

如何在ggplot2的facet_wrap中通过labeller为分面标签添加单位

解决ggplot2分面标签自动添加单位的问题

当然可以直接在labeller函数内完成单位添加,不用单独定义标签向量,这里提供两种简洁的实现方式:

方法1:使用label_bquote(推荐)

label_bquote支持直接用表达式拼接标签内容,能自动匹配每个分面的组值:

library(tibble)
library(ggplot2)

set.seed(123) # 加随机种子保证结果可复现
df <- tibble(
  group = factor(rep(1:3, times = 5)),
  output = sample(1:10, 15, replace = TRUE)
)

df %>%
  ggplot()+
  geom_boxplot(aes(y = output))+
  facet_wrap(vars(group), labeller = label_bquote(.(group) ~ mg))

这里.(group)会自动提取每个分面的组值,~用来连接文本和单位,生成的标签就是1 mg、2 mg这类格式。

方法2:自定义labeller函数

如果需要更灵活的格式控制,可以直接写一个匿名函数传给labeller:

df %>%
  ggplot()+
  geom_boxplot(aes(y = output))+
  facet_wrap(vars(group), labeller = labeller(group = function(x) paste(x, "mg")))

这个匿名函数会接收每个分面的标签值x,直接拼接单位后返回,效果和方法1一致。

这两种方法都省去了单独定义标签向量的步骤,直接在分面参数内完成标签格式化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:01:01