Matplotlib-Streudiagramme

Wir können die Methode scatter() in pyplot verwenden, um Streudiagramme zu zeichnen.

Die Syntax der Methode scatter() lautet wie folgt:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)

Parameter description:

x,y: Arrays gleicher Länge, die die Datenpunkte sind, die wir darstellen möchten, Eingabedaten.

s: Größe der Punkte, Standard 20, kann auch ein Array sein, wobei jeder Parameter des Arrays die Größe des entsprechenden Punktes angibt.

c: Farbe der Punkte, standardmäßig blau 'b', kann auch ein zweidimensionales RGB- oder RGBA-Zeilenarray sein.

marker: Punktstil, standardmäßig kleiner Kreis 'o'.

cmap: Colormap, Standard None, ein Skalar oder der Name einer Colormap, wird nur verwendet, wenn c ein Array von Gleitkommazahlen ist. Wenn nicht angegeben, ist es image.cmap.

norm: Normalize, Standardwert None, Datenhelligkeit zwischen 0-1, wird nur verwendet, wenn c ein Array von Gleitkommazahlen ist.

vmin,vmax:: Helligkeitseinstellung, wird ignoriert, wenn der Parameter norm vorhanden ist.

alpha:: Transparenzeinstellung, zwischen 0-1, Standardwert None, bedeutet undurchsichtig.

linewidths:: Länge des Markerpunkts.

edgecolors:: Farbe oder Farbsequenz, Standardwert 'face', optionale Werte sind 'face', 'none', None.

plotnonfinite:: boolescher Wert, legt fest, ob Punkte mit ungültigem c (inf, -inf oder nan) gezeichnet werden.

**kwargs:: weitere Parameter.

Das folgende Beispiel übergibt Arrays gleicher Länge an die Funktion scatter(), eines für die x-Achsen-Werte und das andere für die y-Achsen-Werte:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])

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

Das angezeigte Ergebnis sieht wie folgt aus:

Legen Sie die Größe der Marker fest:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
sizes = np.array([20,50,100,200,500,1000,60,90])
plt.scatter(x, y, s=sizes)
plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Farbe der Punkte anpassen:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([1, 2, 3, 4, 5, 6, 7, 8])
y = np.array([1, 4, 9, 16, 7, 11, 23, 18])
colors = np.array(["red","green","black","orange","purple","beige","cyan","magenta"])

plt.scatter(x, y, c=colors)
plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Zwei Sätze von Streudiagrammen zeichnen:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
plt.scatter(x, y, color = 'hotpink')

x = np.array([2,2,8,1,15,8,12,9,7,3,11,4,7,14,12])
y = np.array([100,105,84,105,90,99,90,95,94,100,79,112,91,80,85])
plt.scatter(x, y, color = '#6F9CC9')

plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Zufallszahlen zum Festlegen des Streudiagramms verwenden:

Beispiel

import numpy as np
import matplotlib.pyplot as plt

# Startwert für den Zufallszahlengenerator
np.random.seed(19680801)


N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = (30 * np.random.rand(N))**2  # 0 bis 15 Punktradien

plt.scatter(x, y, s=area, c=colors, alpha=0.5) # Farbe und Transparenz festlegen

plt.title("EXAMPLE Scatter Test") # Titel festlegen

plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Farbleiste-Farbpalette

Das Matplotlib-Modul bietet viele verfügbare Farbleisten.

Eine Farbleiste ist wie eine Farbliste, bei der jede Farbe einen Wert von 0 bis 100 hat.

Hier ist ein Beispiel für eine Farbleiste:

Um eine Farbleiste festzulegen, müssen Sie den Parameter cmap mit dem Standardwert 'viridis' verwenden und dann die Farbwerte auf ein Array von 0 bis 100 setzen.

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Wenn Sie die Farbleiste anzeigen möchten, müssen Sie dieplt.colorbar()-Methode verwenden:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='viridis')

plt.colorbar()

plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Verwenden Sie einen anderen Farbleisten-Parameter, setzen Sie cmap aufafmhot_r:

Beispiel

import matplotlib.pyplot as plt
import numpy as np

x = np.array([5,7,8,7,2,17,2,9,4,11,12,9,6])
y = np.array([99,86,87,88,111,86,103,87,94,78,77,85,86])
colors = np.array([0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100])

plt.scatter(x, y, c=colors, cmap='afmhot_r')
plt.colorbar()
plt.show()

Das angezeigte Ergebnis sieht wie folgt aus:

Die Werte des colorbar-Parameters können die folgenden sein:

Farbnamen   Reservierte Schlüsselwörter
Accent   Accent_r
Blues   Blues_r
BrBG   BrBG_r
BuGn   BuGn_r
BuPu   BuPu_r
CMRmap   CMRmap_r
Dark2   Dark2_r
GnBu   GnBu_r
Greens   Greens_r
Greys   Greys_r
OrRd   OrRd_r
Oranges   Oranges_r
PRGn   PRGn_r
Paired   Paired_r
Pastel1   Pastel1_r
Pastel2   Pastel2_r
PiYG   PiYG_r
PuBu   PuBu_r
PuBuGn   PuBuGn_r
PuOr   PuOr_r
PuRd   PuRd_r
Purples   Purples_r
RdBu   RdBu_r
RdGy   RdGy_r
RdPu   RdPu_r
RdYlBu   RdYlBu_r
RdYlGn   RdYlGn_r
Reds   Reds_r
Set1   Set1_r
Set2   Set2_r
Set3   Set3_r
Spectral   Spectral_r
Wistia   Wistia_r
YlGn   YlGn_r
YlGnBu   YlGnBu_r
YlOrBr   YlOrBr_r
YlOrRd   YlOrRd_r
afmhot   afmhot_r
autumn   autumn_r
binär   binary_r
bone   bone_r
brg   brg_r
bwr   bwr_r
cividis   cividis_r
cool   cool_r
coolwarm   coolwarm_r
copper   copper_r
cubehelix   cubehelix_r
flag   flag_r
gist_earth   gist_earth_r
gist_gray   gist_gray_r
gist_heat   gist_heat_r
gist_ncar   gist_ncar_r
gist_rainbow   gist_rainbow_r
gist_stern   gist_stern_r
gist_yarg   gist_yarg_r
gnuplot   gnuplot_r
gnuplot2   gnuplot2_r
gray   gray_r
hot   hot_r
hsv   hsv_r
inferno   inferno_r
jet   jet_r
magma   magma_r
nipy_spectral   nipy_spectral_r
ocean   ocean_r
pink   pink_r
plasma   plasma_r
prism   prism_r
rainbow   rainbow_r
seismic   seismic_r
spring   spring_r
summer   summer_r
tab10   tab10_r
tab20   tab20_r
tab20b   tab20b_r
tab20c   tab20c_r
terrain   terrain_r
twilight   twilight_r
twilight_shifted   twilight_shifted_r
viridis   viridis_r
winter   winter_r

Weitere Erweiterungen