3 votes

Réalisation d'une carte choroplèthe avec folium

J'ai un problème pour réaliser cette carte choroepth. Les zones sont correctes, les chiffres sont corrects, mais mes zones sont remplies de la même couleur. Je suppose que je me trompe dans le key_on. Mon code est basé sur ce tutoriel : https://blog.dominodatalab.com/creating-interactive-crime-maps-with-folium/ Code :

[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]

2voto

Conengmo Points 179

En key_on L'argument attend le nom du champ dans les données GeoJSON qui est lié à vos données numériques. Dans votre extrait de code, il est défini comme suit None donc ça ne marche pas. Dans le tutoriel, ils utilisent key_on = 'feature.properties.DISTRICT' .

Cela signifie que dans les données GeoJSON, chaque élément aura une propriété nommée 'DISTRICT' qui, je suppose, contiendra le nom d'un district. Ensuite, dans votre cadre de données, vous avez une colonne nommée "District" avec des chaînes de caractères qui correspondent à la valeur du champ GeoJSON "DISTRICT". Lorsqu'il y a une correspondance, la valeur de la colonne 'Number' sera utilisée pour déterminer la couleur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X