Wie man die Markergröße eines Streudiagramms in Matplotlib setzt

Suraj Joshi 30 Januar 2023
  1. s Schlüsselwort-Argument der Funktion scatter()
  2. Markierungsgröße-Parameter zur Steuerung der Größe im plot-Verfahren
Wie man die Markergröße eines Streudiagramms in Matplotlib setzt

Die Größe der Marker im Streudiagramm wird durch das s-Schlüsselwortargument der Funktion scatter() kontrolliert, wobei s ein Skalar oder ein Array ist.

s Schlüsselwort-Argument der Funktion scatter()

Syntax für die Funktion Streuen:

matplotlib.pyplot.scatter(
    x,
    y,
    s=None,
    c="b",
    marker="o",
    cmap=None,
    norm=None,
    vmin=None,
    vmax=None,
    alpha=None,
    linewidths=None,
    faceted=True,
    verts=None,
    hold=None,
    **kwargs
)

wobei s ein Skalar oder ein Array mit der gleichen Länge wie x und y ist, um die Markierungsgröße zu setzen. Die Standard-Markergröße ist rcParams['lines.markersize'] ** 2. Laut Dokumentation ist s die Markergröße in Punkten**2.

Gleiche Markergröße für alle Punkte setzen

import numpy as np
import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = np.sin(x)

plt.scatter(x, y, s=500, c="magenta")

plt.title("Scatter plot of sinx")
plt.xlabel("x")
plt.ylabel("sinx")
plt.xlim(0, 6)
plt.ylim(-2, 2)
plt.show()

Einheitlich vergrößerte Markergröße des Streudiagramms

Markergröße der Punkte ungleichmäßig erhöhen

Die doppelte Breite der Markierungen

Um die width (oder height) des Markers zu verdoppeln, müssen wir s um den Faktor 4 erhöhen, da A = W*H => (2W)*(2H)= 4A.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [a ** 2 for a in x]
s = [10 * 4 ** n for n in range(len(x))]
plt.scatter(x, y, s=s)
plt.title("Doubling width of marker in scatter plot")
plt.xlabel("x")
plt.ylabel("x**2")
plt.xlim(0, 6)
plt.ylim(0, 30)
plt.show()

verdoppelte Breite der Marker

Verdoppelung der Fläche der Markierungen

Um die Fläche des Markers zu verdoppeln, vergrößern wir die “Fläche” um den Faktor 2, so dass die Größe des Markers linear mit der “Fläche” skaliert.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [a ** 2 for a in x]
s = [10 * 2 ** n for n in range(len(x))]
plt.scatter(x, y, s=s)
plt.title("Doubling area of marker in scatter plot")
plt.xlabel("x")
plt.ylabel("x**2")
plt.xlim(0, 6)
plt.ylim(0, 30)
plt.show()

Verdoppelte Fläche der Marker

Markierungsgröße-Parameter zur Steuerung der Größe im plot-Verfahren

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [0] * len(x)

plt.plot(x, y, "bo", markersize=10)
plt.show()

Hier wird die Fläche des Kreises durch den Parameter Markergröße gesteuert.

markersize-Parameter zur Steuerung der Größe im Plottverfahren

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Verwandter Artikel - Matplotlib Scatter