Mapa de puntos en plotly con scatter_geo y scatter_mapbox

Datos de ejemplo

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]})

Mapa de puntos con 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()

Mapa de puntos sobre un mapa de calles con 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()
Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon
Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon

También te puede interesar