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

基于Name列前缀分组绘制独立柱状图的R语言实现需求

实现方案

1. 数据预处理

先把Name列拆分成前缀(分组依据)和后缀(横轴标签)两列,方便后续分组和绘图:

library(tidyverse)

# 合并两个示例数据集(若实际数据是分开的)
data_combined <- bind_rows(data1, data2)

# 拆分Name列,生成Prefix和Suffix列
data_processed <- data_combined %>%
  separate(Name, into = c("Prefix", "Suffix"), sep = "_", remove = FALSE)

2. 批量绘制分组柱状图

根据需求,有两种常用实现方式:

方式一:分面展示所有分组(快速浏览)

把所有分组的图表放在同一张画布上,用分面区分:

ggplot(data_processed, aes(x = Suffix, y = Amount)) +
  geom_col(fill = "#2E86AB") +
  facet_wrap(~Prefix, scales = "free_y") + # 每组y轴独立适配数值范围
  labs(x = "处理类型", y = "含量") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

方式二:生成独立图表(单独保存/查看)

通过循环为每个前缀生成单独的图片文件:

# 获取所有唯一前缀
prefix_list <- unique(data_processed$Prefix)

# 循环生成并保存图表
for (prefix in prefix_list) {
  group_data <- filter(data_processed, Prefix == prefix)
  
  plot <- ggplot(group_data, aes(x = Suffix, y = Amount)) +
    geom_col(fill = "#F24C4C") +
    labs(title = paste("分组:", prefix), x = "处理类型", y = "含量") +
    theme_bw() +
    theme(axis.text.x = element_text(angle = 45, hjust = 1))
  
  # 按前缀命名保存图片
  ggsave(filename = paste0(prefix, "_barplot.png"), plot = plot, width = 6, height = 4)
}

3. 数据归一化处理

按需对每组数据做归一化,只需在预处理阶段添加计算步骤:

按组内最大值归一化(缩至0-1范围)

data_normalized <- data_processed %>%
  group_by(Prefix) %>%
  mutate(Normalized_Amount = Amount / max(Amount)) %>%
  ungroup()

按组内总和归一化(占比形式)

data_normalized <- data_processed %>%
  group_by(Prefix) %>%
  mutate(Normalized_Amount = Amount / sum(Amount)) %>%
  ungroup()

绘图时将y = Amount替换为y = Normalized_Amount即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:12:25