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 ?
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 :
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!