Matplotlib: so färben sie ein streudiagramm nach wert
Häufig möchten Sie möglicherweise die Farbe von Punkten in einem Matplotlib-Streudiagramm basierend auf einer dritten Variablen schattieren. Glücklicherweise ist dies mit der Funktion matplotlib.pyplot.scatter() einfach zu bewerkstelligen, die die folgende Syntax verwendet:
matplotlib.pyplot.scatter(x, y, s=Keine, c=Keine, cmap=Keine)
Gold:
- x: Wertetabelle, die für die Positionen der x-Achse im Diagramm verwendet werden soll.
- y: Array von Werten, die für die Y-Achsenpositionen im Diagramm verwendet werden sollen.
- s: die Größe des Markers.
- c: Wertetabelle für Markierungsfarben.
- cmap: Eine Farbkarte zur Verwendung beim Plotten.
Sie können c verwenden, um eine Variable anzugeben, die für die Farbwerte verwendet werden soll, und Sie können cmap verwenden, um die tatsächlichen Farben anzugeben, die für die Markierungen in der Punktwolke verwendet werden sollen.
In diesem Tutorial werden einige Beispiele für die praktische Verwendung dieser Funktion erläutert.
Beispiel 1: Farbige Streudiagrammpunkte nach Wert
Angenommen, wir haben den folgenden Pandas-DataFrame:
import pandas as pd #createDataFrame df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29], 'y': [5, 7, 7, 9, 12, 9, 9, 4], 'z': [3, 4, 4, 5, 7, 8, 8, 9]}) #view DataFrame df X Y Z 0 25 5 3 1 12 7 4 2 15 7 4 3 14 9 5 4 19 12 7 5 23 9 8 6 25 9 8 7 29 4 9
Der folgende Code zeigt, wie man eine Punktwolke mit einer grauen Farbpalette erstellt und die Werte der z- Variablen als Farbton der Farbpalette verwendet:
import matplotlib.pyplot as plt #create scatterplot plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')
Für dieses spezielle Beispiel wählen wir die Farbpalette „Grau“. Eine vollständige Liste der verfügbaren Farbpaletten zur Verwendung finden Sie jedoch in der Dokumentation zu den Matplotlib-Farbpaletten .
Beispielsweise könnten wir stattdessen „Grüntöne“ als Farbpalette angeben:
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ')
Standardmäßig werden Markierungen mit größeren Werten für das c- Argument dunkler schattiert, aber Sie können diesen Trend umkehren, indem Sie einfach _r zum cmap-Namen hinzufügen:
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ')
Beispiel 2: Farbige Streudiagrammpunkte nach Kategorie
Angenommen, wir haben den folgenden Pandas-DataFrame:
import pandas as pd #createDataFrame df = pd.DataFrame({'x': [25, 12, 15, 14, 19, 23, 25, 29], 'y': [5, 7, 7, 9, 12, 9, 9, 4], 'z': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C']}) #view DataFrame df X Y Z 0 25 5 A 1 12 7 A 2 15 7 B 3 14 9 B 4 19 12 B 5 23 9 C 6 25 9 C 7 29 4 C
Der folgende Code zeigt, wie Sie mithilfe der z -Variablen ein Streudiagramm erstellen, um die Markierungen basierend auf der Kategorie einzufärben:
import matplotlib.pyplot as plt groups = df. groupby ('z') for name, group in groups: plt. plot (group.x, group.y, marker=' o ', linestyle='', markersize=12, label=name) plt. legend ()
Weitere Python-Tutorials finden Sie hier .