为什么在Folium中使用超过100个圆形标记进行映射会导致空白地图?

时间:2017-09-23 06:04:53

标签: python pandas folium

我正在使用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)

1 个答案:

答案 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("'", "'")