title: Draw polygons more efficiently with matplotlib
body: <p>I have a dateset of around 60000 shapes (with lat/lon coordinates of each corner) which I want to draw on a map using matplotlib and basemap.</p>
  
  <p>This is the way I am doing it at the moment:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>However, this takes around 1.5 minutes on my machine and I was thinking whether it is possible to speed things up a little. Is there a more efficient way to draw polygons and add them to the map?</p>