Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-11-25 15:38:12
original
267 Les gens l'ont consulté

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()
Copier après la connexion

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()
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal