2017-07-05 1 views
3
import folium ,pandas ,json 

df=pandas.read_csv('Volcanoes_2.txt') 

def colors(elev): 
    minimum=int(min(df['ELEV'])) 
    step=int(max((df['ELEV'])-min(df['ELEV']))/3) 
    if elev in range (minimum,minimum+step): 
     col= "green" 
    elif elev in range(minimum+step,minimum+step*2): 
     col= "orange" 
    else: 
     col= "red" 
    return col 


map_1=folium.Map(location=[df['LAT'].mean(), df['LON'].mean()] , 
zoom_start=6,tiles='mapbox bright') 

for name, lon, lat, elev in zip(df['NAME'], df['LON'], df['LAT'], 
df['ELEV']): 
    folium.Marker([lat, lon], popup= name, 
    icon = folium.Icon(color =colors(elev))).add_to(map_1) 

folium.GeoJson(open('world_geojson.json'), 
      name='geojson', 
      style_function= lambda x :{'fillcolor':'green' if \ 
    x['properties']['POP2005']<10000000 \ 
     else 'orange' if 10000000 <x['properties']['POP2005']>20000000 else 'red'}, 
     ).add_to(map_1) 

folium.LayerControl().add_to(map_1) 

map_1.save("map.html") 

c'est le fichier carte https://github.com/xxspider4/new_repo/blob/master/map.htmlfolium.GeoJson (fonction de style) ne fonctionne pas comme je veux

c'est le fichier JSON https://github.com/xxspider4/new_repo/blob/master/world_geojson.json

+1

Quel est le problème exactement? –

+0

comme vous voyez j'ai essayé de mettre des couleurs différentes pour les zones peuplées avec ce code 'folium.GeoJson (open (' world_geojson.json '), nom =' geojson ', style_function = lambda x: {' fillcolor ':' vert ' if \ x ['properties'] ['POP2005'] <10000000 \ else 'orange' si 10000000 20000000 sinon 'red'},) .add_to (map_1) 'mais encore le code genere une seule couleur le bleu –

Répondre

2

Vous étiez très proche. J'ai pu le faire fonctionner en changeant fillcolor-fillColor dans votre fonction de style

lambda x :{'fillColor':'green' if \ x['properties']['POP2005']<10000000 \ else 'orange' if 10000000 <x['properties']['POP2005']>20000000 else 'red'}

+0

aaah je ne pensais jamais que les mots vont me battre XD de toute façon merci c'était une leçon pour garder les yeux sur des choses comme ça –

+0

Génial, heureux je pourrais aider –