Como definir o tamanho do plote de dispersão em Matplotlib
-
A palavra-chave
s
Argumento 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