xarray.plot可以直接使用xarray.DataArray的各种属性,绘图简单方便,但是较慢
直接使用matplotlib.plot,设置麻烦,速度较快。
一个简单的对比例子
from xgrads import open_mfdataset
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import time
def test1(ds):
a=ds.plot.line()
plt.savefig('a.jpg')
plt.close()
def test2(d2,t2):
b=plt.plot(t2,d2)
plt.ylabel('u')
plt.title('lev 500')
plt.savefig('b.jpg')
plt.close()
url="/g5/lihq/DATABAK/GRAPES_REPS_new10km2/2020060200_rsl/run"
ensnum=15
fn=[]
for i in range(0,ensnum):
fn.append(url+str(i).zfill(2))
dset = open_mfdataset(url+'00/post.ctl*')
ds0 = dset.u.sel(lev='500')
del dset
ds = ds0.mean(dim=['lat', 'lon'])
del ds0
ds2=ds.values
da2=ds.time.values
t1=time.time()
test1(ds)
t2=time.time()
test2(ds2,da2)
t3=time.time()
print("使用xarray的plot类耗时:",t2-t1)
print("使用matplotlib的plot类耗时:",t3-t2)
使用xarray的plot类耗时: 3.237011671066284
使用matplotlib的plot类耗时: 0.07491898536682129