Considera los siguientes datos a modo de ejemplo:
import pandas as pd
# Datos
df = pd.DataFrame({
"ciudad": ["Madrid", "Barcelona", "Valencia", "Sevilla", "Bilbao"],
"lat": [40.4168, 41.3874, 39.4699, 37.3891, 43.2630],
"lon": [-3.7038, 2.1686, -0.3763, -5.9845, -2.9350],
"poblacion": [3.3, 1.6, 0.8, 0.7, 0.3]})
scatter_geo
A diferencia del mapa de burbujas, que colorea una región existente, scatter_geo coloca un marcador en cada par latitud/longitud directamente sobre un mapa mundial, lo que no requiere cuenta ni token de Mapbox.
import plotly.express as px
fig = px.scatter_geo(df, lat = "lat", lon = "lon",
hover_name = "ciudad",
scope = "europe")
fig.show()
Tamaño y color
Mapea una columna numérica a size y color para codificar dos variables más en el mismo mapa.
import plotly.express as px
fig = px.scatter_geo(df, lat = "lat", lon = "lon",
size = "poblacion", color = "poblacion",
hover_name = "ciudad",
scope = "europe")
fig.show()
scatter_mapbox
Si necesitas un fondo de calles real (en vez de un simple contorno mundial), usa scatter_mapbox con el estilo open-street-map, que es gratuito y no requiere token de Mapbox.
import plotly.express as px
fig = px.scatter_mapbox(df, lat = "lat", lon = "lon",
size = "poblacion", color = "poblacion",
hover_name = "ciudad",
mapbox_style = "open-street-map",
zoom = 4)
fig.show()
Zoom y centro
Controla la vista inicial con zoom (valores más altos acercan más) y center, un diccionario con lat y lon.
import plotly.express as px
fig = px.scatter_mapbox(df, lat = "lat", lon = "lon",
size = "poblacion", color = "poblacion",
hover_name = "ciudad",
mapbox_style = "open-street-map",
zoom = 5, center = dict(lat = 40.0, lon = -3.7))
fig.show()
También te puede interesar