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

不同范围栅格图层的箱线图合并绘制技术问询

解决方法

因为四个区域的栅格空间范围不一致,无法直接堆叠,但绘制合并箱线图不需要栅格空间对齐,只需要提取每个区域的有效NO₂均值数值即可,步骤如下:

1. 提取各区域的有效数值

从每个年度均值栅格中提取大于0且非NA的数值(和你计算均值时的规则一致):

# 提取Biscay区域的有效数值
by_vals <- values(meanBY)
by_vals <- by_vals[by_vals > 0 & !is.na(by_vals)]

# 提取North Seca区域的有效数值
ns_vals <- values(meanNS)
ns_vals <- ns_vals[ns_vals > 0 & !is.na(ns_vals)]

# 提取BQPZJR区域的有效数值
bp_vals <- values(meanBP)
bp_vals <- bp_vals[bp_vals > 0 & !is.na(bp_vals)]

# 提取EngChan区域的有效数值
ec_vals <- values(meanEC)
ec_vals <- ec_vals[ec_vals > 0 & !is.na(ec_vals)]

2. 整理为数据框

将所有数值和对应的区域标签组合成数据框,方便绘图:

no2_df <- data.frame(
  NO2_Concentration = c(by_vals, ns_vals, bp_vals, ec_vals),
  Region = rep(
    c("Biscay", "North Seca", "BQPZJR", "EngChan"),
    times = c(length(by_vals), length(ns_vals), length(bp_vals), length(ec_vals))
  )
)

3. 绘制合并箱线图

用基础绘图包:

boxplot(NO2_Concentration ~ Region, data = no2_df,
        main = "年度平均NO₂浓度区域对比",
        ylab = "NO₂浓度",
        col = "lightgreen",
        las = 1)

用ggplot2(更美观的可视化):

如果没安装ggplot2先执行:install.packages("ggplot2"),然后运行:

library(ggplot2)

ggplot(no2_df, aes(x = Region, y = NO2_Concentration)) +
  geom_boxplot(fill = "#4292c6", alpha = 0.7) +
  labs(title = "年度平均NO₂浓度区域对比",
       y = "NO₂浓度",
       x = "区域") +
  theme_bw() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

这样就能在同一图表中对比四个区域的NO₂均值分布了。

内容的提问来源于stack exchange,提问作者Benjamin Van Roozendael

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:20:24