R语言使用ggplot绘制堆叠面积图并添加x5单独曲线的方法
堆叠面积图加单独曲线实现方案
- 第一步:转换数据格式,你当前的
output_2为宽表结构,需要先将x1~x4的列转换为长格式,才能正确映射fill和y参数:
library(tidyverse) # 生成日期列,需确保长度和output_2的行数匹配 output_2$Dates <- seq.Date(as.Date("2010-03-01"), Sys.Date(), "month") # 提取x1-x4转为长格式,用于堆叠面积绘制 area_data <- pivot_longer(output_2, cols = c(x1, x2, x3, x4), names_to = "category", values_to = "value")
- 第二步:组合绘图,堆叠面积使用转换后的长表数据,x5的单独曲线直接调用原表的x5列即可:
ggplot() + # 绘制x1-x4的堆叠面积 geom_area(data = area_data, aes(x = Dates, y = value, fill = category)) + # 绘制x5对应的单独曲线,可自定义颜色、粗细 geom_line(data = output_2, aes(x = Dates, y = x5), color = "black", linewidth = 1) + # 可选:调整坐标轴、图例名称等样式 labs(fill = "堆叠类别", y = "指标数值", x = "日期")
参数说明:堆叠面积部分的
fill对应长表的category列(值为x1/x2/x3/x4),y对应长表的value列(存储四个类别的对应数值),单独添加的x5曲线不会参与面积堆叠。
内容的提问来源于stack exchange,提问作者Benjamin Bech
相关产品推荐
相关产品推荐

