Я пытаюсь нанести контуры высотой 500 МБ и заполненные контуры значений завихренности 500 МБ на карте США. h500
и vort
оба являются двумерными массивами формы (721,1440).
import numpy as np
import pygrib
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.mpl.ticker
import LongitudeFormatter, LatitudeFormatter
from cartopy.util import add_cyclic_point
import cartopy.feature as cfeature
from datetime import datetime
date = datetime.today().strftime('%Y%m%d')
grib = 'gfs'+date+'.f012'
grbs=pygrib.open(grib)
grb = grbs.select(name='Geopotential Height')[0]
h500 = grb.values
grb1 = grbs.select(name='Absolute vorticity')[0]
vort = grb1.values
lats,lons = grb.latlons()
ax0 = plt.axes(projection=ccrs.PlateCarree())
height=ax0.contour(lons,lats,h500[:,:],levels=30,extend='both',
colors='black',transform=ccrs.PlateCarree())
vorticity = ax0.contourf(lons,lats,vort,levels=30,extend='both',
transform=ccrs.PlateCarree())
ax0.set_extent([230,300,20,70],ccrs.PlateCarree())
ax0.coastlines()
ax0.add_feature(cfeature.BORDERS)
ax0.add_feature(cfeature.STATES)
ax0.set_title('500mb(dam) Height & Absolute Vorticity(s-1)\n'+date+'valid 12Z')
plt.savefig(date+'12Z 500mbHeight_Vorticity_US.png')
plt.show()
Код работает нормально, когда я использую ax0.contour
. Когда я пытаюсь использовать ax0.contourf
или plt.contourf
, код не выполняется, он отключается и не генерирует сообщение об ошибке или каких-либо трассировок. Я прочитал документацию по matplotlib для contourf, и для меня нет четкой причины, почему код не должен работать правильно.