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

如何使用R的ggplot2复刻森林火灾年度时间轴可视化效果

回答

实现思路

你当前的代码仅通过散点展示了火灾的起始时间,要复刻目标可视化效果,可按以下逻辑调整:

  1. 用线段替代散点展示单场火灾的完整时间跨度,同时将线段粗细映射为总烧毁面积,直观呈现火灾规模
  2. 统一将所有火灾的起止时间转换为当年的月日格式,忽略实际年份,就能把不同年份的火灾数据都对齐到同一个1-12月的x轴上,和你设置的纵向年度y轴匹配
  3. 如果需要区分林地、农用地等不同类型的烧毁面积,可以把原数据转换为长格式,用颜色映射不同土地类型即可

修改后可运行代码

library(ggplot2)
library(lubridate)
library(scales)
library(data.table)

# 处理数据:把所有火灾的起止时间对齐到2021年,实现不同年份数据的月份对齐
forestfiresv[, `:=`(
  x_start = update(dtstart, year = 2021),
  x_end = update(dtend, year = 2021)
)]

ggplot(forestfiresv, aes(y = year)) +
  # 用linerange展示火灾起止时段,粗细对应烧毁总面积
  geom_linerange(aes(xmin = x_start, xmax = x_end, size = totalareaburnt), 
                 color = "#d7301f", alpha = 0.7) +
  # x轴适配完整年度的月份展示
  scale_x_datetime(limits = as.POSIXct(c("2021-01-01", "2021-12-31"), tz = "UTC"),
                   expand = c(0,0), date_breaks = "2 months", labels = date_format("%b")) +
  # 自定义线段大小范围,让面积差异更明显
  scale_size_continuous(range = c(1, 8), name = "总烧毁面积") +
  theme_bw() +
  labs(x = "月份", y = "年份")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 15:48:03