Maison  >  Article  >  développement back-end  >  Comment la fonction `pyplot.scatter()` de Matplotlib utilise-t-elle le paramètre `s` pour contrôler la taille du marqueur ?

Comment la fonction `pyplot.scatter()` de Matplotlib utilise-t-elle le paramètre `s` pour contrôler la taille du marqueur ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-25 15:38:12250parcourir

How Does Matplotlib's `pyplot.scatter()` Function Use the `s` Parameter to Control Marker Size?

Taille du marqueur de nuage de points pyplot

Dans la fonction matplotlib.pyplot.scatter(), le paramètre s spécifie la taille du marqueur. Cette taille est définie en « points ^ 2 », ce qui peut être une unité de mesure déroutante à interpréter.

Qu'est-ce qu'un « point » ?

Un « point » " dans ce contexte, il s'agit d'une unité de mesure arbitraire utilisée pour définir la taille des marqueurs. Il n'est pas directement lié à la taille d'un pixel sur votre écran.

Comment s affecte-t-il la taille du marqueur ?

Le paramètre s spécifie la zone du marqueur. Cela signifie que :

  • Augmenter s d'un facteur 4 augmente la largeur et la hauteur du marqueur d'un facteur 2.
  • Doubler la largeur du marqueur (ou de tout élément linéaire dimension) nécessite d'augmenter s d'un facteur 4.
  • Doubler la surface du marqueur nécessite d'augmenter s d'un facteur de 2.

Exemple

Créons un nuage de points avec différentes tailles de marqueurs :

import matplotlib.pyplot as plt

x = [0, 2, 4, 6, 8, 10]
y = [0] * len(x)
s = [20 * 4**n for n in range(len(x))]

plt.scatter(x, y, s=s)
plt.show()

Dans cet exemple, la taille du marqueur augmente de façon exponentielle à mesure que nous nous déplaçons de gauche à droite. Chaque marqueur a deux fois la surface du marqueur précédent.

Visualisation de la taille du marqueur

Pour visualiser les différentes fonctions qui affectent la taille du marqueur, créons le tracé suivant :

import matplotlib.pyplot as plt

x = [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
s_exp = [20 * 2**n for n in range(len(x))]
s_square = [20 * n**2 for n in range(len(x))]
s_linear = [20 * n for n in range(len(x))]

plt.scatter(x, [1] * len(x), s=s_exp, label='$s=2^n$', lw=1)
plt.scatter(x, [0] * len(x), s=s_square, label='$s=n^2$')
plt.scatter(x, [-1] * len(x), s=s_linear, label='$s=n$')
plt.ylim(-1.5, 1.5)
plt.legend(loc='center left', bbox_to_anchor=(1.1, 0.5), labelspacing=3)
plt.show()

Ce graphique montre comment la taille du marqueur apparaît lorsqu'elle est mise à l'échelle de manière exponentielle, quadratique et linéaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn