Matplotlib: Cambiar el tamaño del marcador del gráfico de dispersión

M

Introducción

Matplotlib es una de las bibliotecas de visualización de datos más utilizadas en Python. Gran parte de la popularidad de Matplotlib proviene de sus opciones de personalización: puede modificar casi cualquier elemento de su jerarquía de objetos.

En este tutorial, veremos cómo cambiar el tamaño del marcador en un diagrama de dispersión de Matplotlib.

Datos de importacion

Usaremos el Felicidad mundial conjunto de datos y compare el puntaje de felicidad con diferentes características para ver qué influye en la felicidad percibida en el mundo:

import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

Luego, podemos manipular fácilmente el tamaño de los marcadores utilizados para representar entradas en este conjunto de datos.

Cambiar el tamaño del marcador en el gráfico de dispersión de Matplotlib

Comencemos trazando el puntaje de generosidad contra el PIB per cápita:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'])
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Esto resulta en:

Ahora, digamos que nos gustaría aumentar el tamaño de cada marcador, en función de la felicidad percibida de los habitantes de ese país. El puntaje de felicidad es una lista, que viene directamente del df, por lo que esto también puede funcionar con otras listas.

Para cambiar el tamaño de los marcadores, usamos el s argumento, por el scatter() función. Esta sera la markersize argumento para el plot() función:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = df['Score']*10)
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

También hemos multiplicado el valor de cada elemento de la lista por un número arbitrario de 25, porque están clasificados de 0..1. Esto producirá marcadores realmente pequeños si los usamos en sus valores originales.

Esto ahora resulta en:

O mejor aún, en lugar de multiplicar todo crudamente por 25, dado que los valores son similares de todos modos, podemos hacer algo como esto:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

size = df['Score'].to_numpy()
s = [3*s**2 for s in size]

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = s)
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Es importante tener el s enumerar la misma longitud que x y y, ya que cada valor de s ahora se les aplica. Si la lista es más corta o más larga, el código se romperá.

Aquí, hemos extraído los valores del Score columna, escalarlos y aplicar el tamaño de nuevo al diagrama de dispersión:

Establecer el tamaño del marcador global en el gráfico de dispersión de Matplotlib

Si desea separar el tamaño del marcador de alguna variable, y simplemente desea establecer un tamaño global estándar de marcadores en el diagrama de dispersión, simplemente puede pasar un valor único para s:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv('worldHappiness2019.csv')

fig, ax = plt.subplots(figsize=(10, 6))
ax.scatter(x = df['GDP per capita'], y = df['Generosity'], s = 100)
plt.xlabel("GDP per Capita")
plt.ylabel("Generosity Score")

plt.show()

Esto ahora resulta en:

Conclusión

En este tutorial, hemos repasado cómo cambiar el tamaño del marcador en un gráfico de dispersión de Matplotlib.

Si está interesado en la visualización de datos y no sabe por dónde empezar, asegúrese de consultar nuestro libro sobre Visualización de datos en Python.

Data Visualization in Python, un libro para desarrolladores de Python principiantes e intermedios, lo guiará a través de la manipulación simple de datos con Pandas, cubrirá bibliotecas de trazado centrales como Matplotlib y Seaborn, y le mostrará cómo aprovechar las bibliotecas declarativas y experimentales como Altair.

Visualización de datos en Python

¡Comprenda mejor sus datos con visualizaciones! Con 340 páginas, aprenderá los entresijos de la visualización de datos en Python con bibliotecas populares como Matplotlib, Seaborn, Bokeh y más.

.

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad