Ho un datario di circa 60000 forme (con coordinate lat/lon di ogni angolo) che voglio disegnare su una mappa usando matplotlib e basemap.Disegna i poligoni in modo più efficiente con matplotlib
Questo è il modo in cui lo sto facendo in questo momento:
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)
Tuttavia, questo richiede circa 1,5 minuti su mia macchina e stavo pensando se sia possibile per accelerare le cose un po '. C'è un modo più efficiente per disegnare poligoni e aggiungerli alla mappa?
Spero che sia bene che ho aggiunto l'esempio! –
Thx, bel esempio! Penso che PolyCollection sia la chiave. Tuttavia, sono confuso su come trasformare i miei lons/lats in poligoni. Nel tuo caso "verts". – HyperCube
@JoeKington: ottima aggiunta. Purtroppo riceverò il merito per tutto il tuo duro lavoro ... – pelson