Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Xaray等高线图属性错误:轮廓_Python_Matplotlib_Contour_Python Xarray - Fatal编程技术网

Python Xaray等高线图属性错误:轮廓

Python Xaray等高线图属性错误:轮廓,python,matplotlib,contour,python-xarray,Python,Matplotlib,Contour,Python Xarray,我试图使用NCEP再分析netcdf4数据在全球地图上绘制一个等高线形式的xarray变量。我使用xarray计算变量“slp”的标准化异常,方法是将本月的2月份与2016-2019年过去2月份的平均值进行比较。我能够获得最终变量(stdn“作为一个xarray.core.dataset。但是,我的错误消息如下,并且我已将matplotlib更新到当前版本3.2。我一直在搜索此错误,但没有任何帮助。谢谢!我的代码如下,并且我一直收到此错误-AttributeError:“\u dataset\u

我试图使用NCEP再分析netcdf4数据在全球地图上绘制一个等高线形式的xarray变量。我使用xarray计算变量“slp”的标准化异常,方法是将本月的2月份与2016-2019年过去2月份的平均值进行比较。我能够获得最终变量(stdn“作为一个xarray.core.dataset。但是,我的错误消息如下,并且我已将matplotlib更新到当前版本3.2。我一直在搜索此错误,但没有任何帮助。谢谢!我的代码如下,并且我一直收到此错误-AttributeError:“\u dataset\u PlotMethods”对象没有属性'contourf'

from sys import exit
import netCDF4 as nc4
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap, cm
import datetime 
import pandas as pd
import xarray as xr
import bottleneck as bn
import cartopy.crs as ccrs

#The easiest way to read the data is:
path = "//porfiler03/gtdshare/IDL/wtypes/data/slp.2020.nc"
DSC = xr.open_mfdataset(path,combine='nested',concat_dim='time')
DSC = DSC.sel(time=slice('2020-02-01','2020-02-29'))
damc = DSC.groupby('time.month').mean(dim='time')#current year/month Feb 2020 mean slp

mfdataDIR = "//porfiler03/gtdshare/IDL/wtypes/data/avgyears/*.nc"
DS = xr.open_mfdataset(mfdataDIR,combine='nested',concat_dim='time')
da = DS.slp.ffill(dim='time')
da = da.sel(time=slice('2016-01-01','2019-12-31'))
dam = da.groupby('time.month').mean(dim='time')# monthly mean of 2016-2019 dim 12x73x144
damcm = dam.sel(month=slice('2'))#current month mean slp
dams = da.groupby('time.month').std(dim='time')#
damscm = dams.sel(month=slice('2'))#current month stdev slp

stdn = (damc - damcm)/ damscm#standard normal for Feb 2020 
#
stdn.plot.contourf()

exit()

# same error using the below code
ax = plt.axes(projection=ccrs.Orthographic(-80, 35))
ax.set_global()
stdn.plot.contourf(ax=ax, transform=ccrs.PlateCarree())
ax.coastlines()
或者,我尝试了此操作,但出现以下错误:

stdn.plot(robust=True, figsize=(10,6))

ValueError:无法直接调用Dataset.plot。请使用显式绘图方法,例如ds.plot.scatter(…)

要充分利用xarray的绘图功能,最好先从
stdn
提取底层的
DataArray
!然后您就可以执行
da\u stdn.plot()
而且应该可以很好地工作。

以后,试着在问题中包含一个片段,其中包含有关您正在使用的dataset/dataarray的一些数据!这样可以更容易地发现问题所在。