plt.gcf().set_dpi(FIGDPI)
M = Basemap(projection='merc', resolution='c', llcrnrlat=63, urcrnrlat=67,
    llcrnrlon=-24, urcrnrlon=-13)
x, y = M(lons, lats)
boxes = []
for xa, ya, name in zip(x, y, names):
    box = plt.text(xa, ya, name, bbox=dict(facecolor='white', alpha=0.5))
boxes.append(box)
M.bluemarble()
PADDING = 2
plt.savefig('test.png', bbox_inches='tight', pad_inches=PADDING, dpi=FIGDPI)
origin = plt.gca().transAxes.transform((0, 0))
padding = [FIGDPI * PADDING, FIGDPI * PADDING]
Вычислить значения пикселей из координат широты/долготы (используя базовую карту matplotlib)