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

如何在R语言堆叠条形图右侧添加汇总信息列?

在R语言中为堆叠条形图添加右侧汇总列

需求是在堆叠条形图的右侧添加一列,展示“Do at all”(即“经常(Often)”与“偶尔(Occasionally)”的汇总值)。以下是实现步骤:

1. 创建并整理数据框

首先加载所需的tidyverse库,构建数据框并转换为ggplot适配的长格式:

# 加载所需库
library(tidyverse)

# 创建数据框
data <- data.frame(
  event = c("与家人交谈", "捐赠物品", "在社交媒体发帖", "接受采访", "为慈善机构工作/志愿服务", "与记者交谈", "参与抗议活动"),
  lk1 = c(23, 20, 21, 40, 36, 40, 23),  # 经常(Often)
  lk2 = c(10, 36, 30, 12, 12, 12, 25),  # 偶尔(Occasionally)
  lk3 = c(36, 20, 37, 36, 40, 36, 40),  # 从不(Never)
  lk4 = c(31, 24, 12, 12, 12, 12, 12),  # 不愿透露(Prefer not to say)
  lk1_lk2 = c(33, 56, 51, 52, 48, 52, 48)  # Do at all 汇总值
)

# 转换为ggplot所需的长格式
data_long <- data %>%
  pivot_longer(cols = c(lk1:lk4), names_to = "likert", values_to = "value") %>%
  mutate(event = factor(event, levels = rev(unique(event))))

2. 绘制堆叠条形图并添加右侧汇总列

调整绘图逻辑,修正文本位置与轴标签显示问题,确保右侧汇总列清晰展示:

ggplot(data_long, aes(x = value, y = event, fill = likert)) +
  # 绘制堆叠条形图
  geom_bar(stat = "identity") +
  # 添加条形图内部的百分比标签
  geom_text(aes(label = paste0(value, "%")), position = position_stack(vjust = 0.5), color = "white", size = 3) +
  # 添加右侧的Do at all汇总值
  geom_text(data = data, 
            aes(label = paste0(lk1_lk2, "%"), x = 105, y = event),
            color = "black", size = 3) +
  # 设置x轴为百分比格式,扩展轴范围容纳右侧文本
  scale_x_continuous(labels = scales::percent_format(scale = 1), expand = c(0, 15)) +
  # 设置图表标题与轴标签
  labs(title = "各类活动的偏好分布",
       x = "占比",
       y = "活动类型") +
  # 使用极简主题
  theme_minimal() +
  # 将图例放在顶部
  theme(legend.position = "top") +
  # 添加Do at all列的标题
  geom_text(aes(x = 105, y = Inf, label = "Do at all"),
            hjust = 0.5, vjust = 1.5, color = "black", size = 3.5) +
  # 设置图例显示标签
  scale_fill_discrete(labels = c("lk1" = "经常", "lk2" = "偶尔", "lk3" = "从不", "lk4" = "不愿透露"))

关键调整说明:

  • 直接用原始宽格式数据data绘制右侧汇总文本,逻辑更简洁,避免长格式数据筛选的冗余操作;
  • 固定右侧文本的x轴坐标为105,修正原代码中位置偏移的问题,确保文本对齐整齐;
  • 为所有数值标签添加%符号,同时修正百分比格式的scale=1参数,适配0-100的原始数据;
  • 扩展x轴范围,为右侧汇总列预留足够空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:57:32