如何解决当鼠标悬停在等值线地图上时显示 GEOJson/Dataframe 信息
我正在编写交互式芝加哥地图,但我面临一个大问题。我想要的是在悬停区域时显示信息(来自 GeoJson 文件和数据框)的可能性。
这是相关的代码:
folium.Choropleth(
geo_data=CHI_geodata_url,name="choropleth",data=percan,columns=[percan.index,"TOTAL"],key_on='feature.properties.community',fill_color="YlOrRd",fill_opacity=0.7,line_opacity=0.2,legend_name="Crime Rate (%)",tooltip=folium.features.GeoJsonTooltip(fields=['feature.properties.community'],aliases=['Community:']),highlight=True,show=True,).add_to(CHI_map)
CHI_map
目前当我悬停时它不会显示任何内容,但我的目标是弹出一个显示社区名称和与鼠标所在区域相关的总数量。
这里是json文件:https://raw.githubusercontent.com/RandomFractals/ChicagoCrimes/master/data/chicago-community-areas.geojson
有人知道怎么做吗?我花了一个晚上试图寻找答案,但没有成功。
解决方法
所以我用这段代码找到了部分答案:
choro.geojson.add_child(folium.features.GeoJsonTooltip(fields=['community'],aliases=['Community Name'],style=('background-color: white; color: black;')
))
display(CHI_map)
但是,我只能显示包含在 geojson 文件中的信息。我现在正在寻找一种方法来显示更多关于悬停的信息,不仅包含在 json 文件中,而且还包含在数据框中:
我有两条线索:
- 在geojson文件中写入我想要的数据
- 找到同时显示pandas.Dataframe信息的方法
如果我找到答案,我会尝试更新评论,但如果有人阅读这篇文章知道怎么做,请随时提供帮助
更新:
,我找到了一种在geojson文件中添加我想要的信息的方法 for f in range(len(percan)):
tooltip_text.append(str(percan[crime_type][f])+' '+ '% of crimes')
tooltip_text# Append a tooltip column with customised text
i=0
while i!= len(percan):
for idx in range(len(percan)):
if map_data['features'][idx]['properties']['community']==percan.index[i]:
map_data['features'][idx]['properties']['tooltip1'] = tooltip_text[i]
else:
None
i=i+1
这里稍微解释一下:
for f in range(len(percan)):
tooltip_text.append(str(percan[crime_type][f])+' '+ '% of crimes')
tooltip_text# Append a tooltip column with customised text
是创建一个包含我想要显示的东西的列表。
然后
i=0
while i!= len(percan):
for idx in range(len(percan)):
if map_data['features'][idx]['properties']['community']==percan.index[i]:
map_data['features'][idx]['properties']['tooltip1'] = tooltip_text[i]
else:
None
i=i+1
遍历整个数据帧“percan”并确保该值与两个数据帧中的社区区域相匹配。 while 确保我们遍历所有数据框(即使我认为我可以使用 for),然后我们取数据框的第一行(i=1),在 geojson 文件(idx)中查找它的名称,然后一旦匹配,我们将 i 值放在 geojson 文件中的 idx 位置
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。