Как изменить цвет выбросов на графике рассеяния морского побережья? - PullRequest
0 голосов
/ 11 июля 2019

Я хочу идентифицировать выбросы, изменив их на другой цвет от остальных, чтобы после удаления выбросов изменение в диаграмме рассеяния было более четким.

# TotalBsmtSF: Total square feet of basement area

fig = plt.figure(figsize=(16, 8))

ax1 = fig.add_subplot(211)
b = sns.scatterplot(x = 'TotalBsmtSF', y = 'SalePrice', data = df, ax=ax1,)
plt.title ('Total square feet of basement area VS SalePrice (With Outliers)', fontsize=13)
plt.tight_layout()

# Removing houses with total basement area which is more than 3000 square feet
df = df.drop(df[(df['TotalBsmtSF']>3000) & (df['SalePrice']>=160000)].index)
# print(df['TotalBsmtSF'].head(450))
ax2 = fig.add_subplot(212)
b = sns.scatterplot(x = 'TotalBsmtSF', y = 'SalePrice', data = df, ax=ax2,)
plt.title ('Total square feet of basement area VS SalePrice (Outliers Removed)', fontsize=13)
plt.tight_layout()

plt.close(2)
plt.close(3)
plt.tight_layout()

1 Ответ

1 голос
/ 11 июля 2019

Seaborn позволяет изменять цвет маркеров на основе категориальных или числовых данных.Таким образом, вы можете создать новый столбец, который определяет, является ли точка данных выбросом или нет, а затем вызвать параметр hue в seaborn.Это будут строки для добавления или изменения в вашем коде

df['outlier'] = np.where(df['TotalBsmtSF']>3000) & (df['SalePrice']>=160000), 'yes', 'no')
b = sns.scatterplot(x = 'TotalBsmtSF', y = 'SalePrice', data = df, ax=ax1, hue="outlier")

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

...