вывод переменной sns pairplot ‘GrLivArea’ пуст

#python #seaborn

#python #seaborn

Вопрос:

Я получил свои данные о жилье из kaggle. Я пытаюсь создать парную диаграмму, используя seaborn. Однако я не уверен, почему GrLivArea вывод графика пустой.

 import numpy as np 
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_csv('train.csv')

sns.pairplot(df, x_vars=['GrLivArea', 'LotArea', 'TotalBsmtSF', 'GarageArea'], y_vars=['SalePrice'], height=8, aspect = 1, kind='reg')
plt.show()
  

Можете посоветовать?

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

1. Вы проверяли nan в своем наборе данных?

Ответ №1:

Это потому, что ваша ось x для первого графика начинается с 0.0 и продолжается до 1.0. Если вы выполните следующие действия:

 sns.pairplot(df, x_vars=['LotArea', 'TotalBsmtSF', 'GarageArea','GrLivArea'], y_vars=['SalePrice'], height=8, aspect = 1, kind='reg')
  

тогда график будет пустым для LotArea.

Сначала я предположил, что это связано с пустыми значениями (NAN) в вашем наборе данных. Но я проверил это, и, похоже, это не так.

Следующее решение должно решить вашу проблему:

 fig, axs = plt.subplots(ncols=4)
sns.regplot(x='GrLivArea', y='SalePrice', data=df, ax=axs[0])
sns.regplot(x='LotArea', y='SalePrice', data=df, ax=axs[1])
sns.regplot(x='TotalBsmtSF',y='SalePrice', data=df, ax=axs[2])
sns.regplot(x='GarageArea', y='SalePrice', data=df, ax=axs[3])
plt.show()
  

Хотя это не парная диаграмма, вы можете отображать каждую регулярную диаграмму как вспомогательную диаграмму.

Ответ №2:

Я сталкиваюсь с той же проблемой при использовании sns.pairplot .

Тогда я нахожу решение Github здесь.

Добавив параметр diag_kind=None в sns.pairplot то, что первый график может быть успешно построен.

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

1. Я предпочитаю помещать такой ответ в качестве комментария.

2. @MasoudRahimi Извините, потому что я здесь новичок. У меня недостаточно репутации для этого. Но спасибо!

3. Не извиняйтесь; вам здесь рады.