我有一个包含2017-2023年的netcdf file。我需要将每个数据集按年分组,并为每个变量绘制每个月的图。结构如下所示enter image description here
我的代码看起来像这样
%matplotlib inline
import numpy as np
import xarray as xr
import pandas as pd
import matplotlib.pyplot as plt
import datetime as dt
ds_smap = xr.open_dataset('SPL4SMGP.006_9km_aid0001.nc')
#Select Location Alice Springs Mulga
location = ds_smap.sel(lat = -22.2828,lon = 133.2493, day_period = 1, method='nearest')
dataframe = location.groupby(ds_smap["time"].dt.dayofyear).min().drop(["lat", "lon"]).to_dataframe()
dataframe["max"] = location.groupby(ds_smap["time"].dt.dayofyear).max().values
for year, yearloc in location.groupby(location["time"].dt.year):
dataframe[year] = pd.Series(index=yearloc["time"].dt.dayofyear, data=yearloc.values)
dataframe['Geophysical_Data_sm_rootzone'].plot()
字符串
这给了我这个x1c 0d1x
我期待的是2017-2023年的多年情节。有什么建议吗谢谢你!
1条答案
按热度按时间5hcedyr01#
很抱歉我不能在Pandas的数据框的操作框架中提供答案,但它非常简单...
x1c 0d1x的数据
普通的东西
字符串
我没有你的数据,所以让我们生产它
型
现在,将数据放入
recarray
中,这就是xarray.open_dataset
返回的数据(如果我没有弄错的话)。型
当我有
recarray
时,我们操纵它的列来绘制一些东西。让我们开始计算一个包含no的数组。一年中的某一天,Jan 1 → 1,Dec 31 → 365(感谢this answer,请随时支持它);这个数组将是我们的 x
型
接下来,计算每个日期对应的年份的向量,这个向量将用于分组
型
现在我们准备好密谋了
型
xticks
技巧来自this answer,请随意支持它