Cómo establecer el tamaño del marcador de la gráfica de dispersión en Matplotlib

Suraj Joshi 30 enero 2023
  1. El argumento de la palabra clave s de la función scatter()
  2. El parámetro markersize para controlar el tamaño en el método de plot
Cómo establecer el tamaño del marcador de la gráfica de dispersión en Matplotlib

El tamaño de los marcadores en el gráfico de dispersión se controla mediante el argumento de palabra clave s de la función scatter(), donde s es un escalar o un array.

El argumento de la palabra clave s de la función scatter()

Sintaxis de la función dispersión:

matplotlib.pyplot.scatter(
    x,
    y,
    s=None,
    c="b",
    marker="o",
    cmap=None,
    norm=None,
    vmin=None,
    vmax=None,
    alpha=None,
    linewidths=None,
    faceted=True,
    verts=None,
    hold=None,
    **kwargs
)

s es un escalar o un array de la misma longitud que x y y, para establecer el markersize. El tamaño del marcador por defecto es rcParams['lines.markersize'] ** 2. De acuerdo con la documentación, s es el tamaño del marcador en puntos**2.

Poner el mismo tamaño de marcador de todos los puntos

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [2, 1, 5, 3, 3]

plt.scatter(x, y, s=500, c="green")

plt.title("Increasing markersize of scatter plot")
plt.xlabel("x")
plt.ylabel("y")
plt.show()

Aumento del tamaño de los marcadores de la trama de dispersión de manera uniforme

Aumentar el tamaño del marcador de los puntos de manera no uniforme

El doble de ancho de los marcadores

Para duplicar el width (o height) del marcador necesitamos aumentar s por un factor de 4 como A = W*H => (2W)*(2H) = 4A.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0] * len(x)
s = [10 * 4 ** n for n in range(len(x))]
plt.scatter(x, y, s=s)
plt.title("Doubling width of marker in scatter plot")
plt.xlabel("x")
plt.ylabel("y")
plt.show()

El doble de ancho de los marcadores

duplicar el área de marcadores

Para duplicar el área del marcador, aumentamos el área por un factor de 2 para que el tamaño del marcador se escale linealmente con el área.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0] * len(x)
s = [10 * 2 ** n for n in range(len(x))]
plt.scatter(x, y, s=s)
plt.title("Doubling area of marker in scatter plot")
plt.xlabel("x")
plt.ylabel("y")
plt.savefig("doubled area of markers.png")
plt.show()

El área doblada de los marcadores

El parámetro markersize para controlar el tamaño en el método de plot

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0] * len(x)

plt.plot(x, y, "bo", markersize=10)
plt.show()

parámetro de tamaño de marcador para controlar el tamaño en el método de trazado

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Matplotlib Scatter