我正在尝试使用 Basemap 实例绘制以下数据集:
[-0.126929 -0.127279 -0.127851 ..., -0.14199 -0.142828 -0.14335 ]
问题是我无法在地图上显示正确数量的点。(这是我上面的数据列表的长度 = 1315 点)。
如果我将我的数据集定义为:
数据 = np.diag(数据)
[[-0.126929 0. 0. ..., 0. 0. 0. ]
[ 0. -0.127279 0. ..., 0. 0. 0. ]
[ 0. 0. -0.127851 ..., 0. 0. 0. ]
...,
[ 0. 0. 0. ..., -0.14199 0. 0. ]
[ 0. 0. 0. ..., 0. -0.142828 0. ]
[ 0. 0. 0. ..., 0. 0. -0.14335 ]]
如果我将我的数据集定义为:
数据 = np.ma.masked_where(数据==0.,数据)
[[-0.12692899999999696 -- -- ..., -- -- --]
[-- -0.12727900000000147 -- ..., -- -- --]
[-- -- -0.12785099999999971 ..., -- -- --]
...,
[-- -- -- ..., -0.14198999999999984 -- --]
[-- -- -- ..., -- -0.1428280000000015 --]
[-- -- -- ..., -- -- -0.1433499999999981]]
fig = plt.figure()
m = Basemap(projection='mill', \
llcrnrlon= lonmin-0.02, \
urcrnrlon= lonmax+0.02, \
llcrnrlat= latmin-0.02, \
urcrnrlat= latmax+0.02, \
resolution='f')
cmap = plt.cm.get_cmap('bwr_r')
x, y = m(*np.meshgrid(lon,lat))
y = y.T
cs = m.contourf(x,y,data,cmap=cmap)
m.drawcoastlines(linewidth=1.,color='grey')
m.drawcountries(linewidth=1.5,color='white')
m.drawmapboundary(color='k',linewidth=2.0)
m.fillcontinents(color='white')
cb = m.colorbar(cs,location='bottom',size='5%',pad='8%')
cb.set_label('[m]',fontsize=12)
plt.show()