Использование проекции Меркатора: я хочу раскрасить только земли / страны, и вся земля (кроме Антарктиды) плюс весь океан будет окрашена - PullRequest
0 голосов
/ 09 февраля 2020

Этот код взят со страниц документации по базовой карте, и некоторые изменения меняются, чтобы сосредоточиться на моей проблеме Я хочу покрасить (в данном случае пурпурный) все земли (Антарктиду можно не заметить), и весь океан должен быть белым, как Антарктида сейчас. Шейп-файл от здесь enter image description here

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
from matplotlib.patches import PathPatch
import numpy as np

fig = plt.figure(figsize=(20,20))
ax = fig.add_subplot(111)

map = Basemap(llcrnrlon=-180,llcrnrlat=-85,urcrnrlon=180.,urcrnrlat=85, projection='merc')

map.readshapefile('countries_lakes/ne_10m_admin_0_countries_lakes', 'units')

patches = []

for info, shape in zip(map.units_info, map.units):
    patches.append(Polygon(np.array(shape), True))

ax.add_collection(PatchCollection(patches, facecolor= 'm', edgecolor='k', linewidths=1.))

plt.savefig('dem.png', bbox_inches='tight')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...