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

如何在ggplot的facet_wrap分面中额外展示对应分组的其他变量值

方案1:直接在分面标题中展示总支出(改动最小)

先做数据预处理,把每个产品组的总支出拼接到分面标签中即可,代码示例:

library(tidyverse)

# 预处理数据:计算每个产品组的总支出,生成带总支出的分面标签
df <- df %>%
  group_by(product_group) %>%
  mutate(total_spend = sum(spend, na.rm = TRUE)) %>% # 把spend替换为你实际的支出列名
  ungroup() %>%
  mutate(facet_label = paste0(product_group, " (总支出:", round(total_spend, 2), ")"))

# 绘图仅需修改facet_wrap的参数
ggplot(df, aes(x= status_purchase)) + 
  geom_bar() + 
  theme(axis.text.x = element_text(angle = 90)) + 
  facet_wrap(~ facet_label)

如果希望标题更美观,可以把paste0里的空格换成\n实现换行。

方案2:在分面右上角添加标注(文本/气泡)

如果不想改动原分面标题,可以单独在每个分面内添加自定义标注,首先需要生成每个产品组的汇总标注数据集:

spend_anno <- df %>%
  group_by(product_group) %>%
  summarise(total_spend = sum(spend, na.rm = TRUE), .groups = "drop")

2.1 右上角添加总支出文本

在原有绘图代码中新增geom_text层即可:

ggplot(df, aes(x= status_purchase)) + 
  geom_bar() + 
  geom_text(
    data = spend_anno,
    aes(x = 3, y = Inf, label = paste0("总支出:", round(total_spend, 2))),
    hjust = 1.1, # 水平右对齐
    vjust = 1.5, # 垂直上对齐
    inherit.aes = FALSE # 关闭继承全局映射,避免找不到x变量报错
  ) +
  theme(axis.text.x = element_text(angle = 90)) + 
  facet_wrap(~ product_group)

注:x=3对应3个购买决策因子的最右侧水平,如果你自定义了因子顺序,可以按levels顺序调整x的数值(因子在x轴的位置依次为1、2、3)。

2.2 右上角添加对应大小的气泡

如果要实现气泡效果,额外添加geom_point层即可,也可以和文本标注搭配使用:

ggplot(df, aes(x= status_purchase)) + 
  geom_bar() + 
  # 添加气泡层
  geom_point(
    data = spend_anno,
    aes(x = 3, y = Inf, size = total_spend),
    color = "steelblue",
    alpha = 0.6,
    inherit.aes = FALSE
  ) +
  # 可选:添加气泡对应的数值文本
  geom_text(
    data = spend_anno,
    aes(x = 3, y = Inf, label = round(total_spend, 2)),
    hjust = 1.1,
    vjust = 1.5,
    size = 3,
    inherit.aes = FALSE
  ) +
  # 调整气泡大小范围,可根据需求修改
  scale_size_continuous(range = c(2, 12)) +
  theme(axis.text.x = element_text(angle = 90)) + 
  facet_wrap(~ product_group)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:36:03