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

ggplot2堆叠面积图不显示数据问题求助

问题排查与解决:ggplot2堆叠面积图无数据显示

核心问题分析

导致图表仅显示坐标轴、无数据的关键原因有三点:

  • 日期列类型错误:date是字符型,而geom_area需要连续的日期型x轴,离散型字符无法支撑面积绘制
  • 数据集处于分组状态:提供的DF1是grouped_df,分组属性会干扰ggplot对数据的解析
  • 分组数据不完整:部分日期缺少部分nuisancelevel类别,堆叠面积图要求每个x值对应所有fill分组都有数据,缺失会导致面积无法闭合

分步解决方案

1. 取消分组并转换日期类型

先将分组数据框转为普通数据框,同时把字符型日期转为标准日期格式:

# 加载dplyr包(如果未加载)
library(dplyr)

DF1 <- DF1 %>% 
  ungroup() %>% 
  mutate(date = as.Date(date))

2. 补全缺失的分组数据

使用tidyr包的complete()函数,补全每个日期对应的所有nuisancelevel类别,缺失的number_reports用0填充:

library(tidyr)

DF1_full <- DF1 %>% 
  complete(date, nuisancelevel, fill = list(number_reports = 0))

3. 重新绘制堆叠面积图

用补全后的完整数据集绘图,同时优化日期标签的对齐效果:

stack20 <- ggplot(DF1_full, aes(x= date, y= number_reports, fill=nuisancelevel)) + 
  geom_area(position="stack") + 
  theme_classic() + 
  scale_fill_brewer(palette = "Reds") +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
stack20

效果说明

  • 转换日期类型后,x轴变为连续型,满足geom_area的绘制要求
  • 取消分组确保ggplot能正常读取全部数据
  • 补全缺失分组后,每个日期都包含所有nuisancelevel的数值,堆叠面积可以正常闭合并显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 17:36:15