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

如何基于已有dataframe在R中绘制分组geom_bar柱状图?

R 绘制分组柱状图解决方案

1. 依赖加载

使用ggplot2实现绘图,配套tidyr做数据格式转换:

# 未安装则先执行安装
# install.packages(c("ggplot2", "tidyr", "dplyr"))
library(ggplot2)
library(tidyr)
library(dplyr)

2. 数据格式预处理

你的原始数据为宽表结构,需要先转换为ggplot2要求的长表格式:

# 替换示例中的df为你实际的dataframe名称
# 替换「分组列」为你数据中作为横轴分类的列名,比如行业、类别等
df_long <- df %>%
  pivot_longer(
    cols = !分组列,
    names_to = "系列名称",
    values_to = "数值"
  )

3. 核心绘图代码

通过position_dodge参数实现柱子分组排列,避免堆叠:

ggplot(data = df_long, aes(x = 分组列, y = 数值, fill = 系列名称)) +
  # 等价于geom_bar(stat = "identity", position = position_dodge(0.9), width = 0.8)
  geom_col(position = position_dodge(0.9), width = 0.8) +
  # 以下为美化配置,可按需调整
  labs(
    x = "横轴分类标签",
    y = "纵轴数值标签",
    fill = "图例标题"
  ) +
  theme_minimal() +
  theme(
    legend.position = "top",
    panel.grid.major.x = element_blank()
  )

注意事项:若出现柱子重叠,可适当调大position_dodge的参数值;若数据有负值,可额外添加scale_y_continuous()调整纵轴范围。

内容的提问来源于stack exchange,提问作者João Machado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:39:04