Hacer un mapa de coropletas con folium

votos
1

Tengo un problema para hacer este mapa choroepth. Las áreas son rectos, que me dieron los números correctos, pero se llena mis áreas con el mismo color. Mi suposición es que me estoy haciendo la key_on mal. Mi código se basa en este tutorial: https://blog.dominodatalab.com/creating-interactive-crime-maps-with-folium/ Código:

[district_geo = r'C:/1/sfpddists.geojson' 
SF = (37.783087441092704, -122.46120747577555) 

crimedata2 = pd.DataFrame(df\['Police District'\].value_counts().astype(float)) 
crimedata2.to_json('crimeagg.json') 
crimedata2 = crimedata2.reset_index() 
crimedata2.columns = \['District', 'Number'\] 

m = folium.Map(location=SF, zoom_start=12) 

folium.GeoJson( 
district_geo, 
name='geojson' 
).add_to(m) 


m.choropleth(geo_data=r'C:/1/sfpddists.geojson', data=crimedata2, 
columns=\['District', 'Number'\], 
key_on=None, 
fill_color = 'PuBu', 
fill_opacity = 0.7, 
line_opacity = 0.2, 
highlight=True, 
legend_name = 'Number of incidents per district') 
m][1]
Publicado el 18/12/2018 a las 11:06
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

El key_onargumento espera el nombre del campo en los datos GeoJSON que vincula a los datos numéricos. En el fragmento de código se establece en None, por lo que no funciona. En el tutorial que utilizan key_on = 'feature.properties.DISTRICT'.

Esto significa que en los datos de GeoJSON cada función tendrá una propiedad denominada 'distrito' que supongo que contendrá el nombre de un distrito. Luego, en su trama de datos que tiene una columna llamada 'Distrito' con cadenas que coinciden con el valor en el campo de la GeoJSON 'distrito'. Donde hay una coincidencia del valor de la columna 'Número' se utilizará para determinar el color.

Respondida el 13/01/2019 a las 20:54
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more