【发布时间】:2021-09-27 13:53:09
【问题描述】:
我希望绘制一张图表,表示从 1981 年 1 月 1 日到 2016 年 12 月 31 日的每月温度。
我希望 x 轴为“Jan Feb Mar Apr May...Dec”月份,y 轴为温度记录,因为我的计划是将 1981 - 1999 年的月度温度记录与 2000 - 2016 年的月度温度记录进行比较.
我已经读入数据没问题。
temp1 = xr.open_dataarray('temp1981-1999.nc') temp2 = xr.open_dataarray('temp2000-2016.nc')
并且已经摆脱了纬度和经度维度
temp1mean = temp1.mean(dim=['latitude','longitude']) temp2mean = temp2.mean(dim=['latitude','longitude'])
我尝试将其转换为数据框,以便进行下一步,例如使用 group by 平均月份
temp1.cftime_range(start=None, end=None, periods=None, freq='M', normalize=False, name=None, closed=None, calendar='standard')
t2m time 1981-01-01 276.033295 1981-02-01 278.882935 1981-03-01 282.905579 1981-04-01 289.908936 1981-05-01 294.862457 ... ... 1999-08-01 295.841553 1999-09-01 294.598053 1999-10-01 289.514771 1999-11-01 283.360687 1999-12-01 278.854431
monthly = temp1mean.groupby(temp1mean.index.month).mean()
但是我得到了以下错误。
"'DataArray' 对象没有属性 'index'"
因此,我想知道是否有任何方法可以按所有月均值分组并创建如下图表。
除了主要问题之外,如果您还可以提出在绘制图表时将单位开尔文转换为摄氏度的方法,我将不胜感激。 正如我尝试过的命令
celsius = temp1mean.attrs['units'] = 'kelvin'
但输出只是
“'空气温度”
非常感谢您对绘制此 grpah 的任何建议!非常感谢您,如果您需要任何进一步的信息,请随时询问,我会尽快回复。
【问题讨论】:
-
手绘剧情加分! :) 感谢您不遗余力地向我们展示您想要实现的目标。
标签: matplotlib plot python-xarray temperature timeserieschart