Como definir o tamanho do plote de dispersão em Matplotlib
-
A palavra-chave
sArgumento da funçãoscatter() -
Parâmetro para controlar o tamanho em método de
plot
O tamanho dos marcadores no gráfico de dispersão é controlado pelo argumento da palavra-chave s da função scatter(), onde s é um escalar ou um array.
A palavra-chave s Argumento da função scatter()
Sintaxe para função scatter:
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
)
onde, s é um escalar ou uma array do mesmo comprimento de x e y, para definir o markersize. O tamanho padrão do marcador é rcParams['lines.markersize'] ** 2. De acordo com a documentação, s é o tamanho do marcador em pontos**2.
Defina o mesmo tamanho de marcador de todos os pontos
import numpy as np
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = np.sin(x)
plt.scatter(x, y, s=500, c="magenta")
plt.title("Scatter plot of sinx")
plt.xlabel("x")
plt.ylabel("sinx")
plt.xlim(0, 6)
plt.ylim(-2, 2)
plt.show()

Aumentar a Marcação de Pontos Não-Uniformemente
Duplicar a largura dos marcadores
Para dobrar a length (ou height) do marcador precisamos aumentar s por um fator de 4 como A = W*H => (2W)*(2H)= 4A.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [a ** 2 for a in 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("x**2")
plt.xlim(0, 6)
plt.ylim(0, 30)
plt.show()

Duplicar a área de marcadores
Para dobrar a área do marcador, aumentamos a área por um fator de 2, de modo que o tamanho do marcador seja linearmente escalonado com a área.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [a ** 2 for a in 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("x**2")
plt.xlim(0, 6)
plt.ylim(0, 30)
plt.show()

Parâmetro para controlar o tamanho em 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()
Aqui a área do círculo é controlada pelo parâmetro markersize.

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