在底图大陆之上的图像

时间:2015-07-13 16:43:08

标签: python matplotlib overlay matplotlib-basemap

我正在尝试在天气图上添加图像“图章”,但图像低于其他数据。

有没有办法强制图像在其他绘图数据之上(如填充的连续图和轮廓图)。

这几乎可行,但它没有把图像放在最上面:

Python Matplotlib Basemap overlay small image on map plot

以下是显示问题的示例代码:

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

lats = np.arange(45., 60., 0.5)
lons = np.arange(-15., 5., 0.5)

m = Basemap(projection='cyl', llcrnrlon=min(lons)-2, llcrnrlat=min(lats)-2,
            urcrnrlon=max(lons)+2, urcrnrlat=max(lats)+2, resolution='l')

x, y = m(lons,lats)

m.drawcoastlines()
m.fillcontinents()

x0 = np.min(x)
y0 = np.min(y)+3
x1 = x0+(np.max(x)-np.min(x))/2.
y1 = y0+(np.max(y)-np.min(y))/2.
im = plt.imshow(plt.imread('MCC-logo.gif'), extent=(x0, x1, y0, y1), alpha=0.9)

plt.show()

(我还没有发布图片 - 我刚刚加入了stackoverflow)

我希望蓝色标记位于顶部,但无法弄明白该做什么......

2 个答案:

答案 0 :(得分:0)

啊哈!算了吧 - 我在上面的链接中使用了第二个答案。第一个答案确实有效。我应该使用OffsetImage和AnnotationBbox。这成功地将图像置于绘图数据之上。

答案 1 :(得分:0)

更一般地说,您可以使用zorder参数来控制最顶层的艺术家。