Heim > Backend-Entwicklung > Python-Tutorial > Wie verwendet die Funktion „pyplot.scatter()' von Matplotlib den Parameter „s', um die Markergröße zu steuern?

Wie verwendet die Funktion „pyplot.scatter()' von Matplotlib den Parameter „s', um die Markergröße zu steuern?

Linda Hamilton
Freigeben: 2024-11-25 15:38:12
Original
309 Leute haben es durchsucht

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

pyplot Scatter Plot Marker Size

In der Funktion matplotlib.pyplot.scatter() gibt der Parameter s die Markergröße an. Diese Größe wird in „Punkten^2“ definiert, was eine verwirrende Maßeinheit sein kann.

Was ist ein „Punkt“?

Ein „Punkt“. „ ist in diesem Zusammenhang eine willkürliche Maßeinheit, die zur Definition der Größe von Markern verwendet wird. Es steht nicht in direktem Zusammenhang mit der Größe eines Pixels auf Ihrem Display.

Wie wirkt sich s auf die Markergröße aus?

Der s-Parameter gibt den Bereich des Markers an. Das bedeutet:

  • Durch Erhöhen von s um den Faktor 4 werden Breite und Höhe der Markierung um den Faktor 2 erhöht.
  • Verdoppelung der Breite der Markierung (oder einer beliebigen linearen Markierung). Dimension) erfordert eine Erhöhung von s um den Faktor 4.
  • Um die Fläche der Markierung zu verdoppeln, muss s um den Faktor erhöht werden 2.

Beispiel

Lassen Sie uns ein Streudiagramm mit verschiedenen Markergrößen erstellen:

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()
Nach dem Login kopieren

In diesem Beispiel die Markergröße nimmt exponentiell zu, wenn wir uns von links nach rechts bewegen. Jeder Marker hat die doppelte Fläche des vorherigen Markers.

Visualisierung der Markergröße

Um die verschiedenen Funktionen zu visualisieren, die sich auf die Markergröße auswirken, erstellen wir das folgende Diagramm:

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()
Nach dem Login kopieren

Dieses Diagramm zeigt, wie die Markierungsgröße aussieht, wenn sie exponentiell, quadratisch und linear skaliert wird.

Das obige ist der detaillierte Inhalt vonWie verwendet die Funktion „pyplot.scatter()' von Matplotlib den Parameter „s', um die Markergröße zu steuern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage