[英]How do you add GeoJsonTooltip to folium.Choropleth class in folium?
I have two choropleth layers in which I would like to add GeoJsonTooltip to but I keep receiving error TypeError: __init__() missing 1 required positional argument: 'text'
我想在其中添加两个Choropleth层,但我不断收到错误TypeError: __init__() missing 1 required positional argument: 'text'
init TypeError: __init__() missing 1 required positional argument: 'text'
My current code is as follows. 我当前的代码如下。
import folium
import pandas as pd
import json
df_theft = pd.read_csv('PA_Theft.csv')
df_assualt = pd.read_csv('PA_Assualt.csv')
theft_json = json.load(open('theft_geojson.json'))
assualt_json = json.load(open('assualt_geojson.json'))
m = folium.Map(location=[41.20, -77.50], tiles="cartodbdark_matter", zoom_start=8.3)
theft = folium.Choropleth(
geo_data=theft_json,
data=df_theft,
columns=['county_name', 'rate'],
key_on='feature.properties.county_name',
fill_color='OrRd',
fill_opacity=0.9,
nan_fill_color='#ffffff',
nan_fill_opacity=0.9,
legend_name='Incident rate per 100,000 people',
highlight=True,
name='Theft'
).add_to(m)
folium.GeoJson(
theft_json,
tooltip=folium.features.Tooltip(fields=['feature.properties.county_name'])
).add_to(theft)
assualt = folium.Choropleth(
geo_data=assualt_json,
data=df_assualt,
columns=['county_name', 'rate'],
key_on='feature.properties.county_name',
fill_color='OrRd',
fill_opacity=0.9,
nan_fill_color='#ffffff',
nan_fill_opacity=0.9,
legend_name='Incident rate per 100,000 people',
highlight=True,
name='Assualt'
).add_to(m)
folium.GeoJson(
assualt_json,
tooltip=folium.features.Tooltip(fields=['feature.properties.county_name'])
).add_to(assualt)
folium.LayerControl().add_to(m)
m.save('Crime_Map.html')
print('Map created.')
The end result I'm looking for is that when the user hovers over each county in PA the tooltip popup is activated and the following information from the geoJSON is displayed. 我要寻找的最终结果是,当用户将鼠标悬停在PA的每个县上时,将激活工具提示弹出窗口,并显示来自geoJSON的以下信息。
Example geojson 示例geojson
"properties": {
"county_name": "ADAMS",
"incident": "Theft",
"arrests": 24,
"incident_count": 51,
"incident_total": 75,
"population": 102336,
"rate": 73.2879924953096
}
Two things: 两件事情:
GeoJsonTooltip
class to use the geojson fields. 您需要使用GeoJsonTooltip
类来使用geojson字段。 The regular Tooltip
class only works with simple text. 常规Tooltip
类仅适用于简单文本。 That's the error you're getting. 那就是你得到的错误。 GeoJsonTooltip
to the GeoJson
object that is created by Choropleth
under the hood: GeoJsonTooltip(....).add_to(theft.geojson)
可以将通过GeoJsonTooltip
到GeoJson
由创建的对象Choropleth
罩下: GeoJsonTooltip(....).add_to(theft.geojson)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.