Matplotlib: hoe u een spreidingsdiagram op waarde kunt kleuren


Vaak wilt u de kleur van punten in een matplotlib-scatterplot arceren op basis van een derde variabele. Gelukkig is dit eenvoudig te doen met behulp van de functie matplotlib.pyplot.scatter() , die de volgende syntaxis heeft:

matplotlib.pyplot.scatter(x, y, s=Geen, c=Geen, cmap=Geen)

Goud:

  • x: Tabel met waarden die moeten worden gebruikt voor de posities van de x-as in de plot.
  • y: reeks waarden die moeten worden gebruikt voor de y-asposities in de plot.
  • s: de grootte van de marker.
  • c: Tabel met waarden die moeten worden gebruikt voor markeringskleuren.
  • cmap: een kleurenkaart die u bij het plotten kunt gebruiken.

U kunt c gebruiken om een variabele op te geven die u voor de kleurwaarden wilt gebruiken en u kunt cmap gebruiken om de daadwerkelijke kleuren op te geven die u voor de markeringen in de puntenwolk wilt gebruiken.

In deze tutorial worden verschillende voorbeelden van praktisch gebruik van deze functie uitgelegd.

Voorbeeld 1: Gekleurde spreidingsdiagrampunten op waarde

Stel dat we de volgende panda’s DataFrame hebben:

 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

De volgende code laat zien hoe u een puntenwolk kunt maken met behulp van een grijs kleurenpalet en de waarden van de z- variabele als tint van het kleurenpalet:

 import matplotlib.pyplot as plt

#create scatterplot
plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' gray ')

Matplotlib spreidingsplotkleur op waarde

Voor dit specifieke voorbeeld kiezen we het „grijze“ kleurenpalet, maar u kunt een volledige lijst met beschikbare kleurenpaletten vinden die u kunt gebruiken in de matplotlib kleurenpalettendocumentatie .

We zouden bijvoorbeeld in plaats daarvan ‚Groenen‘ kunnen specificeren als kleurenpalet:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens ') 

Matplotlib-spreidingsdiagram met cmap

Standaard zijn markeringen met grotere waarden voor het c- argument donkerder gearceerd, maar je kunt deze trend omkeren door simpelweg _r aan de cmap-naam toe te voegen:

 plt. scatter (df.x, df.y, s=200, c=df.z, cmap=' Greens_r ') 

Matplotlib-kleurenpalet omgekeerde schaal

Voorbeeld 2: Gekleurde spreidingsdiagrampunten per categorie

Stel dat we de volgende panda’s DataFrame hebben:

 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

De volgende code laat zien hoe u een spreidingsdiagram maakt met behulp van de z- variabele om de markeringen te kleuren op basis van categorie:

 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-spreidingsdiagram gekleurd per categorie

Meer Python-tutorials vind je hier .

Einen Kommentar hinzufügen

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