使用Seaborn用密度(双变量)覆盖散点图

时间:2018-12-01 23:14:48

标签: python-3.x matplotlib seaborn

正如标题所读,我正在尝试使用Seaborn用双变量密度覆盖散点图。我对这个软件包非常陌生,因此答案很明显。这是我当前的代码。 (摘自https://elitedatascience.com/python-seaborn-tutorial#

Urllib.request.urlretrieve

我的问题是,这些显示为2个单独的图。本教程暗示此覆盖应该很简单。

编辑:这是我的结果

Density

Scatter

1 个答案:

答案 0 :(得分:1)

如果阅读seaborn的doc,您会看到sns.lmplot()结合了regplot()FacetGrid,而sns.kdeplot()返回了axes对象。因此,您可能想使用图形级功能sns.regplot()来将两个图放置在同一图形中。可以将代码调整为以下内容。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.read_csv('Pokemon.csv', encoding='ISO-8859-1')
# plotting
plt.figure(figsize=(10,6))
sns.relplot(x='Attack', y='Defense', hue='Stage', data=df)
sns.kdeplot(df.Attack, df.Defense)
plt.title('Density vs Scatter');

如果将Jupyter用作IDE,请确保将所有代码放在同一单元格的# plotting下。对于其他IDE,请选择并一起运行代码。否则,它们将显示为两个单独的图。

enter image description here