我想在一个世界地图上绘制一个名为IR的二维数组3298x9896,即世界平面(您可以在左边看到非洲):

python - python在世界 map 上的叠加绘图数组-LMLPHP

现在,我需要对世界地图网格中的填充进行绘图。我通常使用map创建带有大洲的投影世界网格,并且效果很好:

fig = plt.figure(figsize=(18,9))
map = Basemap(projection='cyl', lat_0 = 57, lon_0 = -135, resolution = 'c', area_thresh = 0.1, llcrnrlon=0.0, llcrnrlat=-60.0, urcrnrlon=360.0, urcrnrlat=60.0)
map.drawcoastlines()
map.drawcountries()
map.drawparallels(np.arange(-90,90,15.0),labels=[1,1,0,1])
map.drawmeridians(np.arange(-180,180,15),labels=[1,1,0,1])
map.drawmapboundary()


但是,如果现在我尝试重绘数组数据:

fig = plt.imshow(IR)


python - python在世界 map 上的叠加绘图数组-LMLPHP

我得到了所附的图片,该图片似乎不完整,也没有填写地图。现在,除了颜色,我在做什么错?提前致谢。

最佳答案

您应将底图实例map用于imshow

fig = map.imshow(IR)


确保使用投影。下面的示例使用随机数据,但是可以正常工作

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure(figsize=(18,9))
map = Basemap(projection='cyl', lat_0 = 57, lon_0 = -135, resolution = 'c', area_thresh = 0.1, llcrnrlon=0.0, llcrnrlat=-60.0, urcrnrlon=360.0, urcrnrlat=60.0)
map.drawcoastlines()
map.drawcountries()
map.drawparallels(np.arange(-90,90,15.0),labels=[1,1,0,1])
map.drawmeridians(np.arange(-180,180,15),labels=[1,1,0,1])
map.drawmapboundary()

IR = np.random.rand(3298, 9896)

map.imshow(IR)

关于python - python在世界 map 上的叠加绘图数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36339201/

10-12 06:57