2017-09-23 4 views
1

Je travaille sur la production d'une série de cartes pour une présentation animée en utilisant Folium et mon code (lorsque je trace plus de 100 cercles) se termine toujours par une carte vierge. Si je diminue le nombre de cercles à 100 ou moins, cela fonctionne parfaitement. Est-ce une limitation de folium ou quelque chose que je peux changer sur ma machine locale avec des paramètres de Java ou de navigateur? J'utilise python dans un cahier jupyter en chrome sur Ubuntu. merged_hourly est un Pandas df avec nyc données foottraffic pour les stations spécifiques, lat, long, etc.Pourquoi la cartographie dans Folium avec plus de 100 marqueurs de cercle entraîne-t-elle une carte vierge?

Exporté dataframe se trouve ici comme une feuille de calcul: 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

Salut, quelle version de folium vous utilisez? 100 ne devrait pas être un problème. Pourrait être un problème de données –

+0

version 0.5.0. Cela pourrait être un problème de données, mais je ne vois rien de différent à ce sujet à la ligne 100. Pouvez-vous jeter un coup d'oeil? J'ai téléchargé le dataframe sur des pages Google. https://docs.google.com/spreadsheets/d/1XroOBPUWOqZsy-l1dwcR1iuOIn9ln69ylO16_Sqa9yc/edit?usp=sharing –

+0

'merged_hourly.loc [101, 'Station_Name']' contient une seule citation. Vous pouvez le résoudre (et les autres noms de stations avec des guillemets) en faisant 'merged_hourly ['Station_Name'] = merged_hourly ['Station_Name']. Str.replace (" '"," ")' avant le code ci-dessus –

Répondre

2

ensemble de données de l'OP contient une ligne avec une apostrophe/quote simple dans la colonne Station_Name/Série qui ne provoquait pas d'erreur mais ne restait pas non plus la carte.

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 

solution était de remplacer l'apostrophe avec ' de sorte que la carte et Nom_station montre rend correctement dans le menu contextuel

merged_hourly['Station_Name'] = merged_hourly['Station_Name'] 
               .str.replace("'", "'")