Comment définir la taille du marqueur du nuage de points dans Matplotlib

  1. Argument mot-clé s de la fonction scatter()
  2. Paramètre markersize pour contrôler la taille dans la méthode plot

La taille des marqueurs dans le nuage de points est contrôlée par l’argument mot-clé s de la fonction scatter() , où s est un scalaire ou un tableau.

Argument mot-clé s de la fonction scatter()

Syntaxe de 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)

où, s est un scalaire ou un tableau de la même longueur quex et y, pour définir la taille du marqueur. La taille de marqueur par défaut est rcParams['lines.markersize']**2. Selon la documentation, s est la taille du marqueur en points**2.

Définir la même taille de marqueur de tous les points

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

Augmentation uniforme de la taille du marqueur du nuage de points

Augmenter la taille de marqueur des points de manière non uniforme

doubler la largeur des marqueurs

Pour doubler la largeur (ou la hauteur) du marqueur, nous devons augmenter s par un facteur de 4 comme 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()

largeur des marqueurs doublée

doubler la surface des marqueurs

Pour doubler la zone du marqueur, nous augmentons la zone d’un facteur 2 afin que la taille du marqueur évolue linéairement avec la zone.

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

zone de marqueurs doublée

Paramètre markersize pour contrôler la taille dans la méthode 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()

Ici, la zone du cercle est contrôlée par le paramètre markersize.

paramètre markersize pour contrôler la taille dans la méthode de tracé

Article connexe - Matplotlib Scatter

  • Comment tracer une liste de coordonnées x,y dans Matplotlib
  • Comment relier des points de nuage de points à une ligne dans Matplotlib