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

Suraj Joshi 30 janvier 2023
  1. Argument mot-clé s de la fonction scatter()
  2. Paramètre markersize pour contrôler la taille dans la méthode plot
Comment définir la taille du marqueur du nuage de points dans Matplotlib

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 que x 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 width (ou la height) 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é

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Article connexe - Matplotlib Scatter