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

在RStudio中绘制主题出现次数条形图的技术求助

解决方案

步骤1:提取主题哑变量并统计频次

从生成的哑变量数据框中筛选出主题相关列,计算每列的求和值(即对应主题的出现次数),再整理成适合绘图的长格式数据:

# 加载所需工具包
library(fastDummies)
library(tidyverse)

# 基于哑变量数据统计主题频次
theme_counts <- Alldata2 %>%
  select(starts_with("Themes_")) %>%  # 筛选所有主题哑变量列
  summarise(across(everything(), sum)) %>%  # 计算每个主题的总出现次数
  pivot_longer(cols = everything(), 
               names_to = "theme", 
               values_to = "count") %>%  # 转换为长格式数据
  mutate(theme = str_remove(theme, "Themes_")) %>%  # 移除列名前缀,还原原始主题名
  arrange(desc(count))  # 按频次从高到低排序

步骤2:绘制条形图

使用ggplot2绘制条形图,针对52个主题的场景,通过翻转坐标轴避免标签重叠:

ggplot(theme_counts, aes(x = reorder(theme, count), y = count)) +
  geom_bar(stat = "identity", fill = "#3498db") +
  labs(x = "主题", y = "出现次数", title = "各主题出现频次条形图") +
  coord_flip() +  # 翻转坐标轴,优化多主题的可读性
  theme_minimal() +
  theme(axis.text.y = element_text(size = 7))  # 调整轴标签字号,适配大量主题

补充提示

  • 如果哑变量列名不是Themes_开头,可根据实际生成的列名调整select中的筛选规则(比如用contains(",")或直接指定列范围)。
  • 若需要突出高频主题,可在geom_bar中添加颜色映射,例如aes(fill = count),再配合scale_fill_gradient(low = "#e8f4f8", high = "#2980b9")设置渐变色彩。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 03:55:25