我正在尝试使用python的底图库在地图上显示数据。我拥有的数据是2D阵列(72 X 144)。我已经能够显示地图但是当我在地图上显示数据时,它看起来像这样:
http://i.stack.imgur.com/Zsw9Y.png
我的问题是如何显示数据以便扩展整个地图?我不知道如何改变地图的大小。
我的代码如下所示:
import numpy as np
from matplotlib import pylab as plt
from pylab import *
from matplotlib import colors
from mpl_toolkits.basemap import Basemap
A = np.fromfile('1983/yyyymmddhh.83100100', dtype='int32')
B = np.reshape(A, (72, 144))
for i, n in enumerate(B):
for j, m in enumerate(n):
if (B[i][j] == -999):
B[i][j] = 13
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
m = Basemap(projection='cyl', lat_0 = 50, lon_0 = -100,
ax = ax, resolution = 'l',
llcrnrlat=-90, urcrnrlat = 90, llcrnrlon = -180, urcrnrlon = 180)
border_color = 'black'
m.drawcoastlines()
plt.imshow(B)
plt.colorbar()
plt.show()
答案 0 :(得分:0)
有几种方法可以做到这一点,你可以在这里看到; http://matplotlib.org/basemap/api/basemap_api.html
上面评论中列出的第一个是使用m.imshow。
接下来,您可以通过指定每个点的纬度/经度坐标来绘制具有m.pcolor或m.pcolormesh的伪彩色图像;这将是方块颜色。
最后,您可以使用m.contour或m.countourf使用轮廓或填充的countour地图显示等高线图。