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