python - 用大叶制作等值线图

标签 python choropleth folium

我在制作这张分区图时遇到问题。这些区域是正确的,我得到的数字是正确的,但它用相同的颜色填充我的区域。我的假设是我把 key_on 弄错了。我的代码基于本教程: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]

最佳答案

key_on 参数需要 GeoJSON 数据中链接到您的数值数据的字段名称。在您的代码片段中,它设置为 None,因此它不起作用。在本教程中,他们使用 key_on = 'feature.properties.DISTRICT'

这意味着在 GeoJSON 数据中,每个要素都将有一个名为“DISTRICT”的属性,我假设该属性将包含一个地区的名称。然后,在您的数据框中,您有一个名为“District”的列,其中的字符串与 GeoJSON“DISTRICT”字段中的值匹配。如果存在匹配,“数字”列中的值将用于确定颜色。

关于python - 用大叶制作等值线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53831679/

相关文章:

Python folium - Markercluster 无法使用 GroupedLayerControl 进行迭代

javascript - 按邮政编码划分的等值线 map

r - 使用美国县级数据创建 Choropleth map

r - 一个州等值线图中的县

python - 如何使用 ctypes 将 NumPy 复杂数组与 C 函数连接起来?

python - Folium 多 map 叠加

python - Folium map 未显示

python - 在python中的每行文件中按数据类型划分字符串

python - 如何去除标点符号?

python - 如何在 C 中合并 Python 库?