所以我尝试重新创建此文件,只是为了查看叶草如何工作,然后再尝试自己的项目。 http://andrewgaidus.com/leaflet_webmaps_python/
但是,这似乎是从较早版本的folium那里获得的,该代码不再起作用。我已修复它,直到您可以在地图上看到所有犯罪记录为止,但是我无法显示颜色,这是更重要的部分。
有问题的代码如下:
crime_map=add_choropleth(crime_map, tracts, 'CTFIPS10','AssaultsPSqMi')
调用哪个函数
def add_choropleth(mapobj, gdf, id_field, value_field, fill_color = 'YlOrRd', fill_opacity = 0.6,
line_opacity = 0.2, num_classes = 5, classifier = 'Fisher_Jenks'):
if classifier == 'Fisher_Jenks':
threshold_scale=ps.esda.mapclassify.Fisher_Jenks(gdf[value_field], k = num_classes).bins.tolist()
if classifier == 'Equal_Interval':
threshold_scale=ps.esda.mapclassify.Equal_Interval(gdf[value_field], k = num_classes).bins.tolist()
if classifier == 'Quantiles':
threshold_scale=ps.esda.mapclassify.Quantiles(gdf[value_field], k = num_classes).bins.tolist()
#Convert the GeoDataFrame to WGS84 coordinate reference system
gdf_wgs84 = gdf.to_crs({'init': 'epsg:4326'})
mapobj.choropleth(geo_data = gdf_wgs84.to_json(), data = gdf,
columns = [id_field, value_field], key_on = 'feature.properties.id_field',
fill_color = fill_color, fill_opacity = fill_opacity, line_opacity = line_opacity,
threshold_scale = threshold_scale)
return mapobj
所有文件都可以在这里找到:https://github.com/agaidus/leaflet_webmaps_python
如果需要,我可以发布整个代码。我不知道为什么它不起作用。我为值的键尝试了很多不同的事情,或者在choropleth贴图上没有得到任何颜色,或者我遇到了其他某种错误,例如NoneType没有函数get或超出范围错误。如果有人能够提供帮助,将不胜感激。