matplotlib:为什么轮廓和轮廓f之间的结果不一致

时间:2015-11-21 23:52:52

标签: python python-2.7 matplotlib contour matplotlib-basemap

为什么matplotlib contourcontourf会产生不一致的结果?

我希望使用matplotlib底图工具包的立体投影在地图上绘制一些数据。当我用填充轮廓绘制数据contourf时,我看到下面的第一张图。注意北美大部分地区的红色(正值)。当我将contourf更改为contour时,不做任何其他更改,我会看到下面的第二张图片。注意北美中部的蓝色条纹(负值)。

蓝色的contour结果是数据中的实际结果,因此我期望看到的结果。 contourf结果不是我所期望的。什么可能导致这种情况?

enter image description here enter image description here

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()

更新:圆柱形图形产生了我对填充轮廓的期望: enter image description here

0 个答案:

没有答案