Jak utworzyć wykres punktowy seaborn ze współczynnikiem korelacji


Możesz użyć następującej podstawowej składni, aby utworzyć wykres rozrzutu w Seaborn i dodać do wykresu współczynnik korelacji :

 import scipy
import matplotlib. pyplot as plt
import seaborn as sns

#calculate correlation coefficient between x and y
r = scipy. stats . pearsonr (x=df. x , y=df. y )[0]

#create scatterplot
sns. scatterplot (data=df, x=df. x , y=df. y )

#add correlation coefficient to plot
plt. text (5, 30, ' r = ' + str ( round (r,2)))

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: utwórz wykres rozrzutu Seaborn ze współczynnikiem korelacji

Załóżmy, że mamy następującą ramkę danych pandy, która pokazuje punkty i asysty różnych koszykarzy:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'C', 'C', 'C', 'D', 'D'],
                   ' points ': [12, 11, 18, 15, 14, 20, 25, 24, 32, 30],
                   ' assists ': [4, 7, 7, 8, 9, 10, 10, 12, 10, 15]})

#view DataFrame
print (df)

  team points assists
0 to 12 4
1 to 11 7
2 To 18 7
3 to 15 8
4 B 14 9
5 C 20 10
6 C 25 10
7 C 24 12
8 D 32 10
9 D 30 15

Możemy użyć poniższej składni, aby utworzyć wykres rozrzutu w celu wizualizacji relacji między przejściami i punktami, a także użyć funkcji pearsonr() scipy do obliczenia współczynnika korelacji między tymi dwiema zmiennymi:

 import scipy
import matplotlib. pyplot as plt
import seaborn as sns

#calculate correlation coefficient between assists and points
r = scipy. stats . pearsonr (x=df. assists , y=df. points )[0]

#create scatterplot
sns. scatterplot (data=df, x=df. assists , y=df. points )

#add correlation coefficient to plot
plt. text (5, 30, ' r = ' + str ( round (r,2))) 

morska chmura punktów ze współczynnikiem korelacji

Z wyniku widzimy, że współczynnik korelacji Pearsona pomiędzy asystami i punktami wynosi 0,78 .

Powiązane: Co uważa się za „silną” korelację?

Zauważ, że użyliśmy funkcji round() do zaokrąglenia współczynnika korelacji do dwóch miejsc po przecinku.

Możesz zaokrąglić do innej liczby miejsc po przecinku, a także możesz użyć argumentu rozmiar czcionki , aby zmienić rozmiar czcionki współczynnika korelacji na wykresie:

 import scipy
import matplotlib. pyplot as plt
import seaborn as sns

#calculate correlation coefficient between assists and points
r = scipy. stats . pearsonr (x=df. assists , y=df. points )[0]

#create scatterplot
sns. scatterplot (data=df, x=df. assists , y=df. points )

#add correlation coefficient to plot
plt. text (5, 30, ' r= '+ str ( round (r,4)), fontsize= 20 )) 

Należy zauważyć, że współczynnik korelacji jest teraz zaokrąglony do czterech miejsc po przecinku, a rozmiar czcionki jest znacznie większy niż w poprzednim przykładzie.

Uwaga : Pełną dokumentację funkcji seaborn scatterplot() można znaleźć tutaj .

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe funkcje w seaborn:

Jak wykreślić rozkład w Seaborn
Jak zamówić wykresy pudełkowe na osi X w Seaborn
Jak dodać tabelę do działki Seaborn

Dodaj komentarz

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