J'utilise depuis longtemps un fond de carte avec matplotlib en python mais je construisais un nouveau morceau de code et je suis tombé sur cette anomalie vraiment étrange et je ne sais pas Je ne sais pas comment le contourner.Matplotlib basemap polygone jette une erreur mais réussit si quelque chose est tracée
Si j'ai un polygone que je veux tracer dans matplotlib en utilisant (lonList, latList) la commande show jettera une erreur lors du tracé du polygone avec une erreur d'allocation. Ou sur une autre machine, j'ai vu qu'il va tracer un écran vide. Cependant, si j'utilise la même liste et ajoute un nuage de points (ligne commentée ci-dessous), cela fonctionnera. De plus, si je trace une ligne ou un nuage de points tout seul, cela fonctionnera, mais le tracé du polygone lui-même échoue. Je n'ai aucune idée pourquoi cela est et ne peut pas trouver un rapport de bogue à ce sujet. S'il vous plaît aider? Par ailleurs, je cours Debian Jessie 8 avec python 2.7 si cela peut aider.
#!/usr/bin/env python
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
from matplotlib.collections import PatchCollection
from matplotlib.patches import Polygon
def singlePatchExample():
patches = []
fig = plt.figure(figsize=(19.2,10.8))
ax = plt.subplot(111)
lonSW = -8.0
latSW = 51.0
lonNE = -6.0
latNE = 53.0
centLon = (lonSW + lonNE)/2.0
centLat = (latSW + latNE)/2.0
baseMap = Basemap(llcrnrlon=lonSW,llcrnrlat=latSW,urcrnrlon=lonNE,urcrnrlat=latNE,\
resolution='i', lat_0 = centLon, lon_0 = centLat)
longList = [ -7.0, -7.5, -7.7 ]
latList = [ 51.5, 52.0, 52.5 ]
x, y = baseMap(longList, latList)
polygon = Polygon(zip(x,y), True)
patches.append(polygon)
patchInSingleImage = PatchCollection(patches, alpha=0.2)
ax.add_collection(patchInSingleImage)
ax.set_title("Single Patch Example, (without points????)")
#baseMap.scatter(x, y, color='r')
plt.show()
singlePatchExample()
Merci pour ce travail, mais comment puis-je conserver la limite originale SW, NE. C'est également important à préserver. Je pense toujours que cela vaut la peine d'être +1 car je ne pouvais même pas deviner ça. Cela ressemble toujours à un bug. –
Eh bien, tant que vous n'avez rien sur la carte, aucune carte n'est affichée. Assurez-vous d'avoir la carte dans les axes. J'ai mis à jour la réponse avec quelques options possibles. – ImportanceOfBeingErnest