即使将Choropleth与 geo_data 关联并且将 data frame 与中的data参数关联之后,输出映射中也没有任何颜色变化> choropleth 方法。
我正确提供了“ key_on” 参数,并正确提供了“ columns” 参数。我已经从数据框中删除了所有NULL值。
import pandas as pd
from pandas import read_csv
import folium
import os
import webbrowser
crimes = read_csv('Dataframe.csv',error_bad_lines=False)
vis = os.path.join('Community_Areas.geojson')
m = folium.Map(location = [41.878113, -87.629799], zoom_start = 10, tiles = "cartodbpositron")
m.choropleth(geo_data=vis, data = crimes, columns = ['Community Area', 'count'], fill_color = 'YlGn', key_on = 'feature.properties.area_numbe')
folium.LayerControl().add_to(m)
m.save('map.html')
webbrowser.open(filepath)
我期望彩色的choropleth贴图,但是实际输出是完全灰色的。我将在下面的链接中添加代码,数据和输出。
代码链接: https://github.com/rahul0070/Stackoverflow_question_data
答案 0 :(得分:1)
读取数据后,我发现您没有将Community Area列的数据类型转换为字符串类型,因为geojson文件包含字符串形式的密钥。因此,键和列的数据类型都应该匹配。
这是您答案的完整解决方案
# importing libraries
import pandas as pd
from pandas import read_csv
import folium
import os
import webbrowser
# read the data
crimes = read_csv('Dataframe.csv',error_bad_lines=False)
# convert float to int then to string
crimes['Community Area'] = crimes['Community Area'].astype('int').astype('str')
# choropleth map
vis = 'Community_Areas.geojson'
m = folium.Map(location = [41.878113, -87.629799], zoom_start = 10, tiles = "cartodbpositron")
m.choropleth(geo_data=vis, data = crimes, columns = ['Community Area', 'count'], fill_color = 'YlGn', key_on = 'feature.properties.area_num_1')
folium.LayerControl().add_to(m)
m.save('map.html')
webbrowser.open('map.html')
如果您难以理解代码的任何部分,请发表评论。对于key_on参数,您也可以尝试feature.properties.area_numbe