Saltar al contenido principal
InicioTutorialesPython

Guía paso a paso para hacer mapas en Python usando la librería Plotly

Haz que tus datos destaquen con impresionantes mapas creados con Plotly en Python
may 2024  · 7 min leer

Esperanza de vida por países

Los mapas se han utilizado durante siglos para ayudar a las personas a navegar y comprender su entorno. En la era del big data, los mapas se han convertido en una herramienta esencial para la visualización de datos. Nos permiten visualizar los datos de forma intuitiva, interactiva y fácil de entender. Los mapas pueden ayudarnos a identificar patrones y relaciones que podrían ser difíciles de ver en otros tipos de visualizaciones.

Plotly es una potente biblioteca de visualización de datos para Python que permite crear una amplia gama de visualizaciones interactivas, incluidos mapas. Una de las ventajas de Plotly es que está diseñado para trabajar sin problemas con otras bibliotecas de Python, como Pandas y NumPy. Esto facilita la importación y manipulación de datos y la creación de visualizaciones adaptadas a sus necesidades específicas. Si quieres aprender Plotly, echa un vistazo a nuestro curso Introducción a la visualización de datos con Plotly en Python.

En este tutorial, aprenderás paso a paso cómo crear y personalizar mapas simples e interactivos usando Plotly en Python. También aprenderá a crear mapas Choropleth, un tipo específico de mapa que utiliza códigos de colores para representar datos de zonas geográficas concretas, como países, estados o ciudades.

Visualizaciones comunes de mapas Plotly

Empecemos por ver algunos de los diferentes tipos de mapas Plotly que puede crear.

ScatterGeo Plot

La función Scattergeo() se utiliza para crear un gráfico de dispersión en un mapa geográfico. Esto significa que puede ayudarte a trazar puntos en un mapa en el que cada punto representa una ubicación geográfica concreta, como una ciudad o un punto de referencia.

Por ejemplo, si tiene un conjunto de datos que contiene las coordenadas de latitud y longitud de distintas ciudades del mundo, puede utilizar Scattergeo() para representar cada ciudad en un mapamundi.

Cada punto del mapa representará la ubicación de una ciudad concreta, y puedes personalizar el tamaño, el color y la forma de cada punto para representar distintas características de las ciudades, como la población o la temperatura.

Esta función se utiliza habitualmente en aplicaciones de visualización y análisis de datos, como la previsión meteorológica, el análisis de población y la cartografía empresarial. Puede ayudarle a visualizar los datos de una forma más significativa, mostrando la distribución espacial de los puntos de datos y resaltando patrones o tendencias que pueden no ser visibles en una tabla o un gráfico.

Ejemplo de creación de un gráfico ScatterGeo en Plotly

import plotly.express as px
import pandas as pd


# Import data from USGS
data = pd.read_csv('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv')


# Drop rows with missing or invalid values in the 'mag' column
data = data.dropna(subset=['mag'])
data = data[data.mag >= 0]


# Create scatter map
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', #size='mag',
                     title='Earthquakes Around the World')
fig.show()

Salida

primera salida plotly

Este ejemplo de código utiliza Plotly para crear un geomapa interactivo de la localización de terremotos en todo el mundo. Importa datos de terremotos de la página web del USGS a un DataFrame de pandas y elimina cualquier fila con valores de magnitud que falten o no sean válidos.

A continuación, el código utiliza el método px.scatter_geo para crear un mapa de dispersión que muestra la ubicación de los terremotos, con los de mayor magnitud en colores más oscuros. El parámetro hover_name está configurado para mostrar el nombre de la ubicación al pasar el ratón por encima de un marcador.

Por último, el código establece el título del mapa y lo muestra utilizando fig.show(). Este tipo de mapa puede utilizarse para explorar patrones sísmicos y obtener información sobre la actividad sísmica mundial.

Personalización de parcelas básicas

1. Cambia la escala de colores: El parámetro color de la función scatter_geo asigna la magnitud de los terremotos al color de los marcadores. Puede personalizar la escala de colores para representar mejor los valores de magnitud.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', color_continuous_scale='reds',
                     title='Earthquakes Around the World')
fig.show()

Salida:

Salida 2

2. Cambia el tamaño del marcador: Puede personalizar el tamaño de los marcadores para representar mejor la magnitud de los terremotos.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', size='mag', size_max=10,
                     title='Earthquakes Around the World')
fig.show()

Salida:

Salida 3

3. Cambia el color de fondo: Puede cambiar el color de fondo del mapa para hacerlo más atractivo visualmente.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', color_continuous_scale='reds',
                     title='Earthquakes Around the World')
fig.update_layout(geo=dict(bgcolor='black'))
fig.show()

Salida 4

Si quieres aprender más sobre las posibilidades de visualización y personalización avanzada en Plotly echa un vistazo a nuestro Python Plotly Express Tutorial: Unlock Beautiful Visualizations por Bekhruz Tuychiev.

Guardar el mapa como archivo HTML interactivo

Puede guardar una figura Plotly como un archivo HTML utilizando la función write_html() del módulo plotly.io. He aquí un ejemplo:

import plotly.io as pio
pio.write_html(fig, file='earthquakes.html', auto_open=True)

Salida 5

Mapas coropléticos

Un mapa coroplético es un tipo de mapa que utiliza distintos colores o tonos para representar los valores de los datos en distintas regiones, como países, estados o provincias. En un mapa coroplético, cada región se colorea según el valor de una variable de datos específica, como la población, la renta o la temperatura.

Los mapas choropleth pueden utilizarse en diversas aplicaciones, como la cartografía electoral, el análisis demográfico y la visualización de datos geográficos. Pueden ayudarle a ver patrones y tendencias en sus datos que pueden no ser evidentes en una tabla o un gráfico, y proporcionan una poderosa forma de comunicar información a su audiencia.

Aunque las funciones scatter_geo y Choropleth de Plotly se utilizan para crear visualizaciones geográficas, son diferentes en cuanto a los tipos de datos para los que son más adecuadas y la forma en que representan esos datos en un mapa. La función scatter_geo se utiliza mejor para trazar puntos de datos individuales en un mapa, donde cada punto representa una ubicación geográfica específica, como una ciudad, un punto de referencia o un terremoto.

Por el contrario, la función Choropleth se utiliza para visualizar datos agregados o promediados por regiones, como países, estados o provincias. Cada región está sombreada o coloreada según el valor de una variable de datos específica, como la densidad de población, la renta media o la tasa de desempleo.

Ejemplo de creación de un mapa Choropleth en Plotly

import plotly.express as px
import pandas as pd


# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')


# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
                    projection='natural earth', title='GDP per Capita by Country')
fig.show()

Salida:

Salida 6

Observe que tenemos un marco temporal en nuestro marco de datos year. Va de 1952 a 2007. Podemos utilizar esta dimensión para animar la visualización. Véase el ejemplo siguiente.

Conjunto de datos de muestra:

Conjunto de datos de muestra

import plotly.express as px
import pandas as pd


# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')


# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
                    projection='natural earth', animation_frame='year',
                    title='GDP per Capita by Country')
fig.show()

Salida

Salida 7

Conclusión

Los mapas son esenciales para la visualización de datos en la era del big data. Plotly es una potente biblioteca de visualización de datos para Python que permite crear una serie de mapas interactivos. Con Scattergeo, puede trazar puntos de datos que correspondan a ubicaciones geográficas concretas, mientras que Choropleth es ideal para visualizar datos agregados en distintas dimensiones, como región, ciudad, país, etc.

Si está interesado en explorar opciones de personalización más avanzadas en Plotly o quiere aprender más sobre sus posibilidades, consulte la hoja de trucos de Python Plotly Express, que proporciona una referencia rápida a las funciones y opciones de Plotly más utilizadas.

Temas
Relacionado

tutorial

Gráficos lineales en MatplotLib con Python

Este tutorial práctico profundiza en la creación y personalización de gráficos lineales con Matplotlib, una potente biblioteca de visualización de datos en Python.
Arunn Thevapalan's photo

Arunn Thevapalan

11 min

tutorial

Introducción al trazado con Matplotlib en Python

Este tutorial muestra cómo utilizar Matplotlib, una potente biblioteca de visualización de datos en Python, para crear gráficos de líneas, barras y dispersión con datos bursátiles.

Kevin Babitz

25 min

tutorial

Tutorial de Python Seaborn Line Plot: Crear visualizaciones de datos

Descubra cómo utilizar Seaborn, una popular biblioteca de visualización de datos de Python, para crear y personalizar gráficos de líneas en Python.
Elena Kosourova's photo

Elena Kosourova

12 min

tutorial

Tutorial de visualización de datos con Python y Tableau

Aprende a utilizar Python para ampliar las funciones de visualización de datos de Tableau.
Abid Ali Awan's photo

Abid Ali Awan

15 min

tutorial

Tipos de gráficos de datos y cómo crearlos en Python

Explore varios tipos de gráficos de datos, desde los más comunes hasta los más avanzados y poco convencionales, qué muestran, cuándo utilizarlos, cuándo evitarlos y cómo crearlos y personalizarlos en Python.
Elena Kosourova's photo

Elena Kosourova

21 min

tutorial

Gráfico lineal de series temporales Matplotlib

Este tutorial explora cómo crear y personalizar gráficos de líneas de series temporales en matplotlib.
Elena Kosourova's photo

Elena Kosourova

8 min

See MoreSee More