Farbe für Scatterplot in Matplotlib festlegen
Um die Farbe der Marker in der Matplotlib zu setzen, setzen wir den c
Parameter in der matplotlib.pyplot.scatter()
Methode.
Setzen der Farbe eines Markers in der Scatterplot
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 1, 4, 7, 4, 3, 2]
plt.scatter(x, y, c="red")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Simple Scatter Plot")
plt.show()
Ausgabe:
Hier setzen wir die Farbe aller Marker in den Scatterplots auf rot, indem wir c="red"
in der scatter()
Methode setzen.
Wenn wir zwei verschiedene Datensätze haben, können wir für jeden Datensatz unterschiedliche Farben verwenden, indem wir die verschiedenen Werte des Parameters c
verwenden.
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7]
y1 = [2, 1, 4, 7, 4, 3, 2]
y2 = [4, 4, 5, 3, 8, 9, 6]
plt.scatter(x, y1, c="red")
plt.scatter(x, y2, c="green")
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Scatter Plot of two different datasets")
plt.show()
Ausgabe:
Hier wird der Datensatz y1
im Streudiagramm durch die rote Farbe dargestellt, während der Datensatz y2
im Streudiagramm durch die grüne Farbe repräsentiert wird.
Bei einer großen Anzahl von Datensätzen wird es schwierig sein, jedem Datensatz jedes Mal manuell eine Farbe zuzuweisen. In solchen Fällen können wir colormap
verwenden, um die Farben für jeden Datensatz zu erzeugen.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))
colors = cm.rainbow(np.linspace(0, 1, y.shape[0]))
for dataset, color in zip(y, colors):
plt.scatter(x, dataset, color=color)
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Ausgabe:
Es erzeugt verschiedene Farben für jede Zeile in der Matrix y
und zeichnet jede Zeile mit einer anderen Farbe auf.
Anstatt die erzeugte Farbkarte zu verwenden, können wir auch Farben angeben, die für Streudiagramme in einer Liste verwendet werden sollen, und die Liste an die Methode itertools.cycle()
übergeben, um einen benutzerdefinierten Farb-Cycler zu erstellen. Um über die Farbe zu iterieren, verwenden wir die next()
Funktion.
import itertools
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.array([1, 2, 3, 4, 5])
y = np.random.random((10, 5))
color_cycle = itertools.cycle(
["orange", "pink", "blue", "brown", "red", "grey", "yellow", "green"]
)
for row in y:
plt.scatter(x, row, color=next(color_cycle))
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
Ausgabe:
Die Methode itertools.cycle()
erstellt eine zyklische Farbliste aus dem gegebenen Farbsatz, und jede Zeile wird im Streudiagramm dargestellt, wobei eine Farbe aus der zyklischen Liste ausgewählt wird.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Matplotlib Scatter Plot
- Wie wird eine Liste von x,y-Koordinaten in Matplotlib geplottet
- Matplotlib-Etikett-Streupunkte
- Plottpunkte in Matplotlib
- Wie man die Legende des Streudiagramms in Matplotlib erstellt