Dessiner des polygones plus efficacement avec matplotlib
J'ai un dateset d'environ 60000 formes (avec coordonnées de latitude/longitude de chaque coin) qui je veux dessiner sur une carte à l'aide de matplotlib et de fond de carte.
C'est la façon dont je le fais en ce moment:
for ii in range(len(data)):
lons = np.array([data['lon1'][ii],data['lon3'][ii],data['lon4'][ii],data['lon2'][ii]],'f2')
lats = np.array([data['lat1'][ii],data['lat3'][ii],data['lat4'][ii],data['lat2'][ii]],'f2')
x,y = m(lons,lats)
poly = Polygon(zip(x,y),facecolor=colorval[ii],edgecolor='none')
plt.gca().add_patch(poly)
Toutefois, cela prend environ 1,5 minutes sur ma machine et je me demandais si il est possible d'accélérer les choses un peu. Est-il un moyen plus efficace pour dessiner des polygones et les ajouter à la carte?
Vous devez vous connecter pour publier un commentaire.
Vous pourriez envisager la création de Collections de polygones au lieu de polygones individuels.
Pertinentes docs peuvent être trouvés ici: http://matplotlib.org/api/collections_api.html
Avec un exemple qui mérite d'être la cueillette appart ici: http://matplotlib.org/examples/api/collections_demo.html
Comme un exemple:
HTH,
J'ai modifié mon code et maintenant il fonctionne parfaitement 🙂
Voici l'exemple:
m
? Ajouter les imports/définitions, ce serait bien.