Как показать линию регрессии в seaborn linear regression jointplot

#python #regression #seaborn

#python #регрессия #seaborn

Вопрос:

Как описано в seaborn API, следующий код создаст график линейной регрессии.

 import seaborn as sns 
import matplotlib.pyplot as plt 
  
# loading dataset 
penguins = sns.load_dataset("penguins")
  
# draw jointplot with reg kind 
sns.jointplot(data=penguins, x="bill_length_mm", y="bill_depth_mm", kind="reg")
  

Это график регрессии

К сожалению, линии регрессии нет. Как я могу добавить строку, как в API?

Комментарии:

1. Это странно. Я попробовал код, которым вы поделились, и я вижу линию на графике. Я использую записную книжку Jupyter. Я бы посоветовал вам проверить, есть ли у вас самые последние версии обоих пакетов.

2. Спасибо за ваш ответ. Обновление этих пакетов мне не помогло.

3. Извините, это было все, что у меня есть.

Ответ №1:

Я также пытался использовать regplot()

 sns.regplot(x="bill_length_mm", y="bill_depth_mm", data=penguins)
  

Но он также не показывал линию. Но использовать его в сочетании с jointplot :

 sns.jointplot(data=penguins, x="bill_length_mm", y="bill_depth_mm", kind="reg")
sns.regplot(x="bill_length_mm", y="bill_depth_mm", data=penguins)
  

Результат со строкой

Комментарии:

1. Я искал то же самое

Ответ №2:

  try JointGrid it combines two plots into one.  In this cat a regplot and a distplot.  The regplot shows the linear regression trend and the distplot shows the data distribution in one graph
 import scipy.stats as stats

 g=sns.JointGrid(data=df, x="bill_length_mm", y="bill_depth_mm")
 g.plot(sns.regplot, sns.distplot)

 or

 g=g.plot_joint(sns.kdeplot)
 g=g.plot_marginals(sns.kdeplot,shade=True)
 g=g.annotate(stats.pearsonr)
  

Комментарии:

1. часто бывает полезно устное объяснение