Revista Informática

Cambiar el tamaño de los puntos en Matplotlib

Publicado el 23 agosto 2022 por Daniel Rodríguez @analyticslane
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.


Volver a la Portada de Logo Paperblog