Como definir o tamanho do plote de dispersão em Matplotlib

  1. A palavra-chave s Argumento da função scatter()
  2. 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()

Aumento uniforme do tamanho da parcela de dispersão

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()

largura dobrada dos marcadores

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()

área dobrada dos marcadores

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.

parâmetro de markersize para controlar o tamanho no método de trama

Artigo relacionado - Matplotlib Scatter

  • Como conectar pontos de dispersão com linha em Matplotlib