我正在使用Folium制作一系列动画演示的地图,而我的代码(当绘制超过100个圆圈时)总是以空白地图结束。如果我将圆圈数减少到100或更低,它可以完美地工作。这是一个folium限制还是我可以在我的本地机器上使用Java或浏览器设置更改的内容?我在Ubuntu的chrome中使用jupyter笔记本中的python。 merged_hourly是一个pandas df,包含特定站点,lat,long等的nyc foottraffic数据。
导出的数据框位于电子表格中:https://docs.google.com/spreadsheets/d/1XroOBPUWOqZsy-l1dwcR1iuOIn9ln69ylO16_Sqa9yc/edit?usp=sharing
# iterates columns in df
for myint in range(0,241):
# iterates rows in df. should go to ~289, but will make a blank map
for i in range(0,101):
# sets some variables from the df
R=merged_hourly[str(myint/10)][i]*.15
lat=merged_hourly['Station_Latitude'][i]
long=merged_hourly['Station_Longitude'][i]
stname=merged_hourly['Station_Name'][i]
# plots the CircleMarker
folium.CircleMarker([lat, long], radius=R, popup=stname, color='#3186cc',
fill_color='#3186cc',fill=True,
fill_opacity= .7).add_to(map_final)
# saves a map with all the circle markers in a row
map_final.save("FilePath/"+str(myint)+'.html')
map_final=5
map_final=folium.Map(location=[40.775036, -73.912034], zoom_start=11.25)
答案 0 :(得分:2)
OP的数据集在Station_Name列/系列中包含一个带有撇号/单引号的行,该行没有导致错误,但也没有渲染地图。
filter = merged_hourly['Station_Name'].str.contains("'")
print(merged_hourly.loc[filter,'Station_Name'])
101 E 143/ST MARY'S
Name: Station_Name, dtype: object
解决方法是用'
替换撇号,以便地图渲染和Station_Name正确显示在弹出窗口中
merged_hourly['Station_Name'] = merged_hourly['Station_Name']
.str.replace("'", "'")