2014-11-05 32 views
0

我想在地圖上使用python的底圖庫來顯示數據。我擁有的數據是2D數組(72 X 144)。我已經能夠得到的地圖顯示,但是當我在地圖上顯示的數據,它看起來是這樣的:如何使用python在底圖上投影2d數組?

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

嘗試'm.imshow'而不是'plt.imshow':http://matplotlib.org/basemap/api/basemap_api.html#mpl_toolkits.basemap.Basemap.imshow – 2014-11-21 02:23:20

+1

感謝你。 – Pete 2014-11-21 16:08:09

回答

0

有幾個方法可以做到這一點,因爲你可以在這裏看到; http://matplotlib.org/basemap/api/basemap_api.html

第一種在上面的註釋中列出的是使用m.imshow。

接下來,您可以通過指定每個點的緯度/經度座標,用m.pcolor或m.pcolormesh繪製僞彩色圖像;這將顏色方塊。

最後,您可以使用m.contour或m.countourf,使用輪廓或填充的地圖顯示等高線圖。