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

如何绘制按月份分箱的单站点逐日降水量直方图?

降水量直方图绘制方案

一、基础全年降水量直方图

不管你的precip是numpy数组还是带时间坐标的xarray一维DataArray,都可以用以下两种方法绘制:

方法1:Matplotlib原生绘制

import matplotlib.pyplot as plt

# 绘制直方图,可调整bins数量控制区间粒度
plt.figure(figsize=(10, 6))
plt.hist(precip, bins=20, edgecolor='black', alpha=0.7)
plt.xlabel('降水量 (mm)')
plt.ylabel('天数')
plt.title('全年降水量分布直方图')
plt.show()

方法2:Xarray内置绘图(保留元数据)

如果precip是从原DataArray提取后保留了坐标的一维数组,用xarray的内置方法更便捷:

import xarray as xr

precip.plot.hist(bins=20, edgecolor='black', figsize=(10, 6))
plt.xlabel('降水量 (mm)')
plt.title('全年降水量分布直方图')
plt.show()

二、按月份分箱的直方图

要实现分月直方图,需要利用原数据的time坐标进行分组,以下两种展示方式供选择:

方式1:分张子图展示各月分布

import matplotlib.pyplot as plt
import xarray as xr

# 重新提取带time坐标的单站点数据(确保保留时间维度)
precip_daily = da.sel(lat=20.12, lon=230.1, method='nearest')  # 替换为你的目标经纬度
month_groups = precip_daily.groupby('time.month')

# 构建3行4列的子图布局
fig, axes = plt.subplots(3, 4, figsize=(16, 12))
axes = axes.flatten()
month_names = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']

# 遍历每个月份的数据绘制直方图
for idx, (month_num, monthly_data) in enumerate(month_groups):
    ax = axes[idx]
    ax.hist(monthly_data, bins=15, edgecolor='black')
    ax.set_title(f'{month_names[idx]} 降水量分布')
    ax.set_xlabel('降水量 (mm)')
    ax.set_ylabel('天数')

plt.tight_layout()
plt.show()

方式2:重叠直方图对比各月分布

import matplotlib.pyplot as plt
import xarray as xr

precip_daily = da.sel(lat=20.12, lon=230.1, method='nearest')
month_groups = precip_daily.groupby('time.month')

plt.figure(figsize=(12, 8))
month_names = ['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月']

# 每个月份用不同颜色绘制,alpha控制透明度
for month_num, monthly_data in month_groups:
    plt.hist(monthly_data, bins=15, edgecolor='black', alpha=0.6, label=month_names[month_num-1])

plt.xlabel('降水量 (mm)')
plt.ylabel('天数')
plt.title('各月份降水量分布对比')
plt.legend(loc='upper right')
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 20:09:25