Faire une carte choroplèthe avec folium

voix
1

J'ai eu un problème pour cette carte choroepth. Les zones sont justes, je suis le nombre correct, mais il remplit mes zones de la même couleur. Je suppose que je reçois le key_on mal. 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]
Créé 18/12/2018 à 11:06
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
0

L' key_onargument doit le nom du champ dans les données GeoJSON qui relie à vos données numériques. Dans votre extrait de code est réglé sur None, il ne fonctionne pas. Dans le tutoriel qu'ils utilisent key_on = 'feature.properties.DISTRICT'.

Cela signifie que dans les données de GeoJSON chaque fonction aura une propriété nommée « district » que je suppose que contiendra le nom d'un district. Ensuite, dans votre dataframe vous avez une colonne nommée « district » avec des chaînes qui correspondent à la valeur dans le champ GeoJSON « district ». Là où il y a un match de la valeur dans la colonne « Numéro » sera utilisé pour déterminer la couleur.

Créé 13/01/2019 à 20:54
source utilisateur

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