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

如何用ggplot2绘制按年份分组、区域区分颜色的并列柱状图?

解决并列柱状图显示异常的问题

问题原因

你的year变量是数值型(2000、2001以数字形式存储),当使用position = "dodge"时,ggplot会将x轴视为连续轴,无法正确识别同一年份下的分组,导致柱子错位、显示混乱。

修正方案

1. 将year转换为因子类型

把数值型的年份转为分类变量,让ggplot明确识别每个年份是独立的分组:

my_data$year <- as.factor(my_data$year)

2. 调整绘图代码

使用转换后的因子型year,搭配position = "dodge"即可实现并列柱状图。另外,region是分类变量,用渐变色彩(scale_fill_gradientn)适配性差,建议改用离散配色方案:

完整代码:

# 转换year为因子
my_data$year <- as.factor(my_data$year)

# 绘制并列柱状图
ggplot(data = my_data, aes(x = year, y = value, fill = region)) +
  geom_bar(stat = "identity", position = position_dodge(width = 0.8)) +
  theme_minimal() +
  scale_fill_brewer(palette = "Set2")

补充说明

  • 额外指定position_dodge(width = 0.8)可以微调柱子间的间距,让布局更美观
  • 离散配色(如scale_fill_brewer)比渐变色彩更适合区分分类变量,视觉上更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:25:33