等值线图未显示输出中的颜色变化

问题描述 投票:1回答:1

即使在将choropleth与geo_data链接并且数据框与choropleth方法中的data参数链接之后,我的输出映射中也没有出现任何颜色变化。

我正确地提供了“key_on”参数和正确的“columns”参数。我已从Dataframe中删除了所有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)

我期待一个彩色的等值线图,但实际输出是完全灰色的。我将在下面的链接中添加代码,数据和输出。

代码链接:https://github.com/rahul0070/Stackoverflow_question_data

python pandas geojson choropleth folium
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.