Python

Cambiar el tamaño de los puntos en Matplotlib

En las gráficas de dispersión creadas con Matplotlib existe la posibilidad de modificar el tamaño de los puntos. Siendo incluso posible asignar un valor diferente a cada uno. Por un lado, el hecho de poder cambiar el tamaño de los puntos en Matplotlib, permite adaptar este a la cantidad de valores que se necesita mostrar. Por otro, poder asignar un valor diferente a cada uno se puede usar para agregar información, usando este para mostrar otra característica de los datos.

Modificar el tamaño de los puntos en una gráfica de dispersión

El tamaño de los puntos en la función scatter() se puede modificar mediante la propiedad s. La cual admite tanto valores escalares como tipo lista. Los valores se indican en punto de pantalla, no en píxeles, algo que puede ser confuso y nos obligará a probar diferentes opciones para encontrar el tamaño óptimo para cada una de las figuras. Esto es lo que se hace en el siguiente ejemplo, crear una misma gráfica con los puntos con valores por defecto y otra con un tamaño de 300.

import matplotlib.pyplot as plt

# Conjunto de datos
x = [1, 2, 3, 4, 5]
y = [8, 3, 2, 5, 6]

# Gráfica con el tamaño de punto por defecto
plt.scatter(x, y)
plt.xlabel("X")
plt.ylabel("Valores")
plt.show()

# Gráfica donde el tamaño de punto se cambia a 300
plt.scatter(x, y, s=300)
plt.xlabel("X")
plt.ylabel("Valores")
plt.show()

Al ejecutarlo nos aparece en primer lugar la siguiente gráfica con puntos que son relativamente pequeños.

Gráfica de dispersión creada en Matplotlib con el tamaño de los puntos por defecto

En segundo lugar, se obtiene la siguiente figura en la que los puntos son más grandes que la anterior.

Gráfica de dispersión creada en Matplotlib con el tamaño de los puntos igual a 300

Ahora solo dependería de nuestras preferencias usar uno u otro, ya que ambos representan los mismos datos.

Asignar un valor diferente a cada uno de los puntos

Como se ha comentado con anterioridad el parámetro s también se puede asignar una lista u objeto similar en lugar de un escalar. En este caso cada uno de los valores de la lista se asignará a un punto. Por ejemplo, mediante una lista por compresión, se puede crear una lista cuyo valor sea proporcional a la altura de los puntos y usarlo para indicar el tamaño.

size = [100 * n for n in y]

plt.scatter(x, y, s=size)
plt.xlabel("X")
plt.ylabel("Valores")
plt.show()

Lo que produce la siguiente figura.

Gráfica de dispersión creada en Matplotlib en la que se cambia el tamaño de cada uno de los puntos en base a un valor

De este modo se puede usar el tamaño de los puntos para dar más información a los lectores, pudiéndose usar para mostrar en la misma figura otra característica relacionada con el punto.

Conclusiones

Hoy se ha visto las opciones que ofrece la propiedad s de la función scatter() para cambiar el tamaño de los puntos en Matplotlib. Una propiedad que correctamente usada permite no solo cambiar la forma de las gráficas, sino que incluir información adicional que puede ser de interés para el lector. Creando de este modo figuras más interesantes.

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Matplotlib

Recent Posts

Por Qué las Contraseñas Largas son más Seguras que las Complejas

"Tu contraseña debe tener al menos 8 caracteres, una mayúscula, un número y un símbolo…

1 día ago

Gini, KS y AUC: Cómo Medir la Calidad de un Modelo de Credit Scoring

Cuando un analista de riesgo presenta un nuevo scorecard ante el comité de dirección, la…

3 días ago

Curiosidad: De dónde vienen foo, bar y foobar

Si revisáis código o documentación de otros programadores, tarde o temprano os toparéis con dos…

1 semana ago

BG/NBD + Gamma/Gamma: el modelo probabilístico para CLV en compras continuas

Los dos artículos anteriores cubrieron el CLV clásico —una fórmula útil pero que trata a…

1 semana ago

Errores habituales al trabajar con DataFrames grandes en Pandas (y cómo evitarlos)

Hay un momento muy concreto en la vida de casi todo análisis: el código que…

2 semanas ago

Champion vs Challenger: Cómo los Bancos Validan Modelos Nuevos antes de Ponerlos en Producción

Has construido un nuevo modelo de credit scoring. Las métricas de validación son mejores que…

2 semanas ago

This website uses cookies.