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

R语言ggplot实现单柱状图同时展示城市与年份变量的方法咨询

实现同一城市不同年份颜色深浅区分的柱状图

核心思路

通过interaction(city, year)将城市与年份组合为一个新分类变量作为填充依据,搭配支持层级色彩的调色板,即可实现同一城市下不同年份用深浅差异区分的效果。

步骤1:修正数据处理代码(修复管道符错误)

你提供的代码中管道符%>遗漏了一个%,先修正数据汇总逻辑:

library(tidyverse)

# 按城市、年份、月份汇总销售额
dati_sum <- dati %>%
  group_by(city, year, month) %>%
  summarise(vendite = sum(sales), .groups = 'drop')

步骤2:绘制目标柱状图

以下提供两种易上手的实现方式,适合初学者:

方法1:用viridis调色板自动生成深浅渐变

viridis系列调色板自带自然的深浅过渡,能自动区分同城市的不同年份:

ggplot(dati_sum, aes(x = month, y = vendite, fill = interaction(city, year))) +
  geom_col(col = "black", position = "stack") + # 可根据需求改为position = "dodge"实现并列柱状
  labs(title = "月度销售分布(按城市+年份区分)",
       x = "月份",
       y = "销售额",
       fill = "城市-年份") +
  scale_fill_viridis_d(option = "mako", alpha = 0.8) + # mako选项的深浅区分度更明显
  theme_classic()

方法2:用RColorBrewer配对调色板

Paired调色板会为同城市的不同年份分配深浅配对的颜色,分组感更强:

ggplot(dati_sum, aes(x = month, y = vendite, fill = interaction(city, year))) +
  geom_col(col = "black", position = "stack") +
  labs(title = "月度销售分布(按城市+年份区分)",
       x = "月份",
       y = "销售额",
       fill = "城市-年份") +
  scale_fill_brewer(palette = "Paired") +
  theme_classic()

进阶:手动精准控制色彩深浅

如果需要自定义每个城市的基础色及年份对应的深浅度,可借助colorspace包实现:

# 首次使用需安装包
# install.packages("colorspace")
library(colorspace)

# 定义各城市的基础色
city_base_colors <- c("北京" = "#2E86AB", "上海" = "#F24C4C", "广州" = "#F7B32B")
# 为不同年份生成对应深浅的颜色
year_color_shades <- list(
  "2022" = darken(city_base_colors, amount = 0.2),  # 加深20%
  "2023" = city_base_colors,                       # 基础色
  "2024" = lighten(city_base_colors, amount = 0.2) # 减浅20%
)
# 合并为所有城市-年份组合的颜色向量
fill_color_list <- unlist(year_color_shades)

ggplot(dati_sum, aes(x = month, y = vendite, fill = interaction(city, year))) +
  geom_col(col = "black", position = "stack") +
  labs(title = "月度销售分布(按城市+年份区分)",
       x = "月份",
       y = "销售额",
       fill = "城市-年份") +
  scale_fill_manual(values = fill_color_list) +
  theme_classic()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:37:35