Matplotlib: jak pokolorować wykres rozrzutu według wartości


Często możesz chcieć zacieniować kolor punktów na wykresie rozrzutu Matplotlib w oparciu o trzecią zmienną. Na szczęście można to łatwo zrobić za pomocą funkcji matplotlib.pyplot.scatter() , która ma następującą składnię:

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

Złoto:

  • x: Tabela wartości do wykorzystania dla pozycji osi x na wykresie.
  • y: tablica wartości do wykorzystania dla pozycji osi Y na wykresie.
  • s: rozmiar znacznika.
  • c: Tabela wartości używanych dla kolorów znaczników.
  • cmap: Mapa kolorów używana podczas kreślenia.

Możesz użyć c , aby określić zmienną, która będzie używana dla wartości kolorów, i możesz użyć cmap , aby określić rzeczywiste kolory, które mają być używane dla znaczników w chmurze punktów.

W tym samouczku wyjaśniono kilka przykładów praktycznego wykorzystania tej funkcji.

Przykład 1: Kolorowe punkty wykresu rozrzutu według wartości

Załóżmy, że mamy następującą ramkę danych pandy:

 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

Poniższy kod pokazuje jak utworzyć chmurę punktów wykorzystując szarą paletę kolorów i wykorzystując wartości zmiennej z jako odcień palety kolorów:

 import matplotlib.pyplot as plt

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

Kolor wykresu punktowego Matplotlib według wartości

W tym konkretnym przykładzie wybraliśmy „szarą” paletę kolorów, ale pełną listę dostępnych palet kolorów do wykorzystania można znaleźć w dokumentacji palet kolorów matplotlib .

Na przykład moglibyśmy zamiast tego określić „Zieloni” jako paletę kolorów:

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

Wykres punktowy Matplotlib z cmap

Domyślnie znaczniki z większymi wartościami argumentu c są ciemniejsze, ale można odwrócić ten trend, po prostu dodając _r do nazwy cmap:

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

Odwrócona skala palety kolorów Matplotlib

Przykład 2: Kolorowe punkty rozrzutu według kategorii

Załóżmy, że mamy następującą ramkę danych pandy:

 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

Poniższy kod pokazuje, jak utworzyć wykres rozrzutu przy użyciu zmiennej z w celu pokolorowania znaczników na podstawie kategorii:

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

Wykres punktowy Matplotlib pokolorowany według kategorii

Więcej samouczków dotyczących Pythona znajdziesz tutaj .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *