【发布时间】:2018-02-24 01:26:18
【问题描述】:
我是 python 新手,还在学习,如果我遗漏了一些明显的东西,请原谅我!
我正在尝试使用 matplotlib 中的 Basemap 绘制温度数据 ('tg') 的 pcolormesh 地图。 tg 是时间、纬度和经度的 3D 数组。出于某种原因,我的输出只显示了大陆和州,但温度数据没有覆盖并且不可见。我错过了什么?
这是我的代码示例:
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap, cm
lon_0 = (lon_var[:].mean())
lat_0 = (lat_var[:].mean())
latcorners = lat_var[:]
loncorners = lon_var[:]
m = Basemap(projection = 'lcc',\
lon_0 = -100, lat_0 = 39, lat_ts = lat_0,\
llcrnrlat=latcorners[0,0],urcrnrlat=latcorners[169,56],\
llcrnrlon=loncorners[0,0],urcrnrlon= loncorners[169,56],\
resolution='l')
m.drawcoastlines()
m.drawstates()
m.drawcountries()
parallels = np.arange(lat_var[0,0], lat_var[169,56])
m.drawparallels(parallels)
meridians = np.arange(lon_var[0,0], lon_var[169,56])
m.drawmeridians(meridians)
clevs = np.linspace(30,50, 2)
cs = m.pcolormesh(lon_var, lat_var, tg[0,:,:])
plt.show()
Here is the output map that is created
谢谢!
【问题讨论】:
-
试试
m.pcolormesh(lon_var, lat_var, tg[0,:,:], latlon=True)。 -
@Thomas Kuhn 这最终奏效了!我还注意到我的 lon_var 和 lat_var 都属于错误的数据类型。我用 np.array() 转换了它们,然后脚本成功运行。感谢您的帮助!
-
也许你可以为自己的问题写一个答案——这样其他人就可以看到这个问题不需要进一步关注。
标签: python netcdf matplotlib-basemap