Создание картограммы с фолиумом - PullRequest
0 голосов
/ 18 декабря 2018

У меня проблема с созданием этой карты хориофтха.Области правильные, я получил правильные числа, но он заполняет мои области тем же цветом.Я предполагаю, что я неправильно понял ключ.Мой код основан на этом уроке: https://blog.dominodatalab.com/creating-interactive-crime-maps-with-folium/ Код:

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

1 Ответ

0 голосов
/ 13 января 2019

Аргумент key_on ожидает имя поля в данных GeoJSON, которое ссылается на ваши числовые данные.В вашем фрагменте кода он установлен на None, поэтому он не работает.В этом уроке они используют key_on = 'feature.properties.DISTRICT'.

. Это означает, что в данных GeoJSON у каждого объекта будет свойство с именем DISTRICT, которое, как я предполагаю, будет содержать название района.Затем в вашем фрейме данных у вас есть столбец с именем 'District' со строками, которые соответствуют значению в поле GeoJSON 'DISTRICT'.В случае совпадения значение в столбце «Число» будет использоваться для определения цвета.

...