我不知道这是否能解决问题,但可以使用Python中的字符串函数来包装它。
你可以用
<br>
-所以每一个句子都是新的
text = text.replace(". ", ". <br>")
或者你可以分成50个字符的行,然后使用
<br>
import textwrap
desc = r['Oligarch_Description']
splited = textwrap.wrap(desc, 50)
desc = '<br>'.join(splitted)
print(desc)
设备截图
480x320
(使用Firefox)
Ctrl+Shift+M
)
完整的工作代码和代码中的示例数据。
它保存在文件中,并在浏览器中打开(我以普通脚本的形式运行它,而不是在浏览器中)
Jupyter
).
import folium
from folium.plugins import MarkerCluster
import pandas as pd
import webbrowser
import textwrap
df = pd.DataFrame({
'lat':[55],
'lon': [38],
'Name': ['Ivan'],
'Full_Address': ['Moscow'],
'Oligarch_Description': ["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."],
})
m = folium.Map(location=df[["lat", "lon"]].mean().to_list(), zoom_start=4)
title = 'Russian Oligarch Real Estate Transactions/investments'
title_html = '<h3 align="center" style="font-size:16px"><b>{}</b></h3>'.format(title)
marker_cluster = MarkerCluster().add_to(m)
for i, r in df.iterrows():
location = (r["lat"], r["lon"])
desc = r['Oligarch_Description']
#desc = desc.replace('. ', '. <br>')
desc = '<br>'.join(textwrap.wrap(desc, 50))
print(desc)
text = f"Name: <strong>{r['Name']}</strong></br> \
Address: <strong>{r['Full_Address']}</strong></br> \
Brief Bio:<br> \
<strong>{desc}</strong>"
folium.Marker(location=location, tooltip=text).add_to(marker_cluster)
m.get_root().html.add_child(folium.Element(title_html))
m.save('folim.html')
webbrowser.open('folim.html')