Mapa de coropletas de Geopandas GeoDataFame

Estoy tratando de hacer un mapa de choropleth de polígonos en un Geopandas GeoDataFrame. Quiero simbolizar los polígonos por cuantiles de un valor en una de las columnas GeoDataFrame. Estoy tratando de descubrir diferentes opciones y ver cuál se adapta mejor a mis necesidades. Cualquier consejo sobre esto sería muy apreciado.

Parece que Geopandas ya tiene alguna capacidad para hacer esto: http://nbviewer.ipython.org/github/geopandas/geopandas/blob/master/examples/choropleths.ipynb

tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd') 

Esto funciona, aunque no puedo encontrar mucha documentación. Me gustaría poder agregar una leyenda que muestre los valores de corte de cuantiles, pero parece que la gráfica de Geopandas actualmente solo permite leyendas basadas en datos categóricos. ¿Alguien tiene un trabajo alrededor de esto?

Además, me gustaría poder ajustar el ancho del contorno del polígono. es posible?

Como una opción alternativa con la que he estado jugando es usar parches de polígonos en matplotlib. Esto parece mucho más complicado, pero parece ofrecer más opciones para personalizar. Si es necesario seguir esta ruta para crear una leyenda, puedo seguir con otra pregunta e incluiré mi código hasta el momento.

Gracias por la ayuda.

El siguiente parche está integrado en las geopandas, por lo que puede hacer ahora solo:

 tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', legend=True) 

Hice un pequeño parche a la función plot_dataframe de los geopandas para habilitar una leyenda cuando se usa un esquema PySAL. Puede encontrarlo aquí: http://nbviewer.ipython.org/gist/jorisvandenbossche/d4e6efedfa1e4e91ab65 (el ajuste es solo en las pocas líneas después, if scheme is not None: .

Esto te permite hacer lo siguiente:

 ax = plot_dataframe(tracts, column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', legend=True) 

para obtener tal figura:

introduzca la descripción de la imagen aquí

Para ajustar el ancho del contorno del polígono, puede usar “ancho de línea” de la siguiente manera:

 tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', linewidth=0.1)