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 ')

Matplotlib-Streudiagrammfarbe nach Wert

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 ') 

Matplotlib-Streudiagramm mit cmap

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 ') 

Invertierte Skala der Matplotlib-Farbpalette

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 ()

Matplotlib-Streudiagramm, gefärbt nach Kategorie

Weitere Python-Tutorials finden Sie hier .

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert