如何用R语言ggplot绘制符合指定样式的条形图?
ggplot条形图绘制解决方案
- 问题描述:我尝试用ggplot创建条形图,但未得到正确结果。
- 我的数据集:

- 目标条形图样式:

解决步骤
转换数据格式
原始数据是宽格式,而分组条形图需要长格式数据,用tidyr包的pivot_longer完成转换:# 加载必要包 library(ggplot2) library(tidyr) # 假设数据框名为df,转换为长格式 df_long <- pivot_longer(df, cols = -类别, names_to = "分组", values_to = "数值")绘制分组条形图
使用geom_col配合position_dodge()实现目标样式:ggplot(df_long, aes(x = 类别, y = 数值, fill = 分组)) + geom_col(position = position_dodge(width = 0.9)) + # 控制分组条形的间距 labs(x = "类别", y = "数值", fill = "分组") + theme_classic() # 匹配目标图的简洁风格
关键说明:目标图是分组并排的条形图,核心是把宽格式数据转成长格式,让每个类别下的不同分组作为单独的行,这样ggplot才能识别并绘制分组效果。
内容的提问来源于stack exchange,提问作者Golem
相关产品推荐
相关产品推荐

