我遇到一个问题,我的Choropleth贴图无法正确渲染。
[我有很多关于芝加哥市的乘车信息,我想按人口普查图创建一个choropleth地图。我检查了geojson文件中的key_on
功能是否为“ geoid10”,并确保拾取人口普查记录全部匹配。
我还确保geojson文件和数据框中的键的数据类型相同(它们都是对象)
不过,我的拟声曲谱图呈现的是黑色/灰色调,而不是正确调调的图谱。
这是我的代码:
# Import packages
import pandas as pd
import geopandas as gpd
import folium
# Load in GeoJSON file, because works with Folium
geosjon_file = "Boundaries - Census Tracts - 2010.geojson"
chicago_census_tracts = gpd.read_file(geosjon_file)
# Pickup by census tract
pickup_by_censustract = pd.read_csv("pickup_demand_by_censustract_test.csv")
# Convert Pickup Census Tract to dtype: object, as key_on object in geosjon_file is also an dtype: object
pickup_by_censustract["Pickup Census Tract"].astype(str)
# Creating Chicago map with Folium
chicago_map = folium.Map(
location=[41.881832, -87.623177],
zoom_start=9)
#folium.TileLayer("CartoDB positron", name="Light Map", control=False).add_to(chicago_map)
# Overlaying Chicago map with bounderies of census tracts
folium.GeoJson(chicago_census_tracts).add_to(chicago_map)
# Creating Choropleth
folium.Choropleth(
geo_data=chicago_census_tracts,
name="choropleth",
data=pickup_by_censustract,
columns=["Pickup Census Tract", "Count"],
key_on="feature.properties.geoid10",
fill_color="YlGn",
fill_opacity=0.7,
line_opacity=0.2,
legend_name="Ride-hailing demand"
).add_to(chicago_map)
folium.LayerControl().add_to(chicago_map)
chicago_map
这是Jupyter笔记本中的当前输出:
尽管我相信我已将key_on功能与数据框正确匹配,但我仍然认为问题仍然在于将geojson文件与数据框正确匹配。
请在此处找到代码,数据和geojson文件:https://github.com/Doncorleone1018/Chicago-choropleth
只需更改此行:
pickup_by_censustract["Pickup Census Tract"].astype(str)
进入:
pickup_by_censustract["Pickup Census Tract"] = pickup_by_censustract["Pickup Census Tract"].astype(str)