Quería que el siguiente código mostrara iconos verdes cuando el valor es < 6.0 y nada cuando es >= 6.0. Pero devuelve iconos rojos para valores >= 6.0 como en la captura de pantalla adjunta. ¿Cuál debería ser la sentencia Else para esto?
import folium
import pandas
data=pandas.read_csv("EQ_CSV.TXT")
lat = list(data["LAT"])
lon = list(data["LON"])
elev = list(data["MAG"])
fga = folium.FeatureGroup(name="Magnitude below 6.0")
def color_producer(xyz):
if xyz < 6.0:
return 'green'
else:
return False
map = folium.Map(location=[24.01, 92.01], zoom_start=6, tiles="Mapbox Bright")
for lt, ln, el in zip(lat, lon, elev):
fga.add_child(folium.Marker(location=[lt, ln], popup= "Magnitude of "+str(el),
icon=folium.Icon(color=color_producer(el))))
1 votos
Quizás
xyz
no se lee como un flotador cuando se ejecuta la función? Pruebe a sustituircolor=color_producer(el)
concolor=color_producer(float(el))
en sufor
bucle.0 votos
Gracias pero no me ha funcionado. Sin embargo, si pongo
else: return 'blue'
entonces está mostrando el icono azul para los valores por encima de 6,0. Pero todo lo que quería era devolver ninguno cuando la condición no es verdadera.1 votos
¿Qué tal si simplemente se quita el
else
¿la afirmación es totalmente?0 votos
Entonces también se muestran los iconos rojos.
2 votos
¿Tal vez pueda ajustar la opacidad para que sea transparente?
1 votos
¿Por qué no filtrar completamente esos valores después de crear el marco de datos (por ejemplo, data = data[data['MAG'] < 6.0])? De este modo, podría establecer un color por defecto y no tendría que preocuparse de comprobar el valor.
0 votos
Ha sido una gran ayuda, ha funcionado. Gracias @neighdough