为什么matplotlib contour
和contourf
会产生不一致的结果?
我希望使用matplotlib底图工具包的立体投影在地图上绘制一些数据。当我用填充轮廓绘制数据contourf
时,我看到下面的第一张图。注意北美大部分地区的红色(正值)。当我将contourf
更改为contour
时,不做任何其他更改,我会看到下面的第二张图片。注意北美中部的蓝色条纹(负值)。
蓝色的contour
结果是数据中的实际结果,因此我期望看到的结果。 contourf
结果不是我所期望的。什么可能导致这种情况?
python代码如下所示。这里data
是一个大小为(73,144)的float32 ndarray,lon
是一个大小为(144,)的float32 ndarray,而lat
是一个大小为(73,)的float32 ndarray。 data
是在2.5度纬度/经度网格上评估的一些NCEP温度异常数据。
import numpy as np
import matplotlib.pyplot as plt
# ...read data, lon, and lat from file here...
m = Basemap(width=10000000,height=6000000,
resolution='l',projection='stere',\
lat_ts=50,lat_0=50,lon_0=253)
m.drawcoastlines()
lon2d, lat2d = np.meshgrid(lon,lat)
x, y = m(lon2d,lat2d)
mymap = plt.contourf(x,y,data,levels=np.arange(17)-8,cmap=plt.cm.bwr)
plt.colorbar(mymap,orientation='vertical',shrink=0.75)
plt.show()