这似乎应该是一个容易解决的问题,但我无法让它工作。我想在附加的图中显示40°N,但是将drawparallels中的labels参数设置为[1,0,1,1]没有起作用。根据文档,这应该在平行线标签与绘图左侧、顶部和底部相交的位置绘制。我还希望0°再次显示在右下角。有什么办法可以解决这两个问题吗?
from netCDF4 import Dataset as NetCDFFile
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
from mpl_toolkits.basemap import addcyclic
nc = NetCDFFile('C:/myfile.nc')
lat = nc.variables['lat'][:]
lon = nc.variables['lon'][:]
time = nc.variables['time'][:]
olr = nc.variables['olr'][:]
olr,lon = addcyclic(olr,lon)
map = Basemap(llcrnrlon=0.,llcrnrlat=-40.,urcrnrlon=360.,urcrnrlat=40.,resolution='l')
lons,lats = np.meshgrid(lon,lat)
x,y = map(lons,lats)
levels = np.arange(-19.5,20.0,0.5)
levels = levels[levels!=0]
ticks = np.arange(-20.0,20.0,4.0)
cs = map.contourf(x,y,olr[0],levels, cmap='bwr')
cbar = plt.colorbar(cs, orientation='horizontal', cmap='bwr', spacing='proportional', ticks=ticks)
cbar.set_label('Outgoing Longwave Radiation Anomalies $\mathregular{(W/m^2)}$')
map.drawcoastlines()
map.drawparallels(np.arange(-40,40,20),labels=[1,0,1,1], linewidth=0.5, fontsize=7)
map.drawmeridians(np.arange(0,360,40),labels=[1,1,0,1], linewidth=0.5, fontsize=7)
numpy.arange
的工作方式基本上与标准的range
相同:如果传递三个值,则第一个值是起始值,中间值是停止值,最后一个值是增量。只要生成的数字比停止值小,arange
就会通过将增量值添加到原始起始值来产生值。这可能需要一点时间来适应,但这就是它的定义方式。 - Thomas Kühn