Как создать диаграмму рассеяния сиборна с коэффициентом корреляции
Вы можете использовать следующий базовый синтаксис, чтобы создать диаграмму рассеяния в Seaborn и добавить к графику коэффициент корреляции :
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)))
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Создайте диаграмму рассеяния Seaborn с коэффициентом корреляции.
Допустим, у нас есть следующий DataFrame pandas, который показывает очки и передачи различных баскетболистов:
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
Мы можем использовать следующий синтаксис для создания диаграммы рассеяния для визуализации взаимосвязи между проходами и точками, а также использовать функцию pearsonr() scipy для расчета коэффициента корреляции между этими двумя переменными:
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)))
Из результата мы видим, что коэффициент корреляции Пирсона между передачами и очками составляет 0,78 .
Связанный: Что считается «сильной» корреляцией?
Обратите внимание, что мы использовали функцию round() для округления коэффициента корреляции до двух десятичных знаков.
Не стесняйтесь округлять до другого количества десятичных знаков, а также не стесняйтесь использовать аргумент размер шрифта , чтобы изменить размер шрифта коэффициента корреляции на графике:
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 ))
Обратите внимание, что коэффициент корреляции теперь округлен до четырех знаков после запятой, а размер шрифта значительно больше, чем в предыдущем примере.
Примечание . Полную документацию по функции seaborn scatterplot() можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные функции в seaborn:
Как построить распределение в Seaborn
Как заказать коробчатые диаграммы по оси X в Seaborn
Как добавить таблицу на график Сиборна