Вам нужно преобразовать координаты в процессе. Попробуйте изменить
map.plot(lat, long, marker=None, color='m')
на
map.plot(*map(long, lat), marker=None, color='m')
Код *map(long, lat)
выполняет необходимое преобразование координат и распространяет результат в xs, ys в этом месте.
Редактировать 1
Исходный код был отредактирован для получения соответствующего экстента данных, правильных параметров проекции.
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
def render_polygon(lat, long):
map = Basemap(llcrnrlon=103, llcrnrlat=50, urcrnrlon=107.5, urcrnrlat=60.,
resolution='c', projection='merc',
lat_0 = 50, lon_0 = 105)
map.plot(*map(long, lat), marker=None, color='m')
#map.drawcoastlines(linewidth=0.7)
plt.show()
lat = [56.1304, 55.1304, 54.1304, 53.1304, 52.1304]
long = [106.3468, 107.3468, 105.3468, 104.3468, 103.3468]
render_polygon(lat, long)
Выходной график: