Seaborn图在同一散点图上的两个数据集

Mic*_* Dz 1 python matplotlib python-3.x pandas seaborn

我在Pandas Dataframe中有2个数据集,我想在相同的散点图中可视化它们,所以我尝试了:

import matplotlib.pyplot as plt
import seaborn as sns

sns.pairplot(x_vars=['Std'], y_vars=['ATR'], data=set1, hue='Asset Subclass')
sns.pairplot(x_vars=['Std'], y_vars=['ATR'], data=set2, hue='Asset Subclass')
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,我一直得到2张独立的图表,而不是一张 在此处输入图片说明 如何可视化同一图上的两个数据集?另外,两个数据集可以具有相同的图例,而第二个数据集可以具有不同的颜色吗?

tob*_*ret 7

以下应该在seaborn(0.9.0)的最新版本中起作用

import matplotlib.pyplot as plt
import seaborn as sns
Run Code Online (Sandbox Code Playgroud)

首先,我们将两个数据集连接为一个,并分配一dataset列,这将允许我们保留有关哪个行来自哪个数据集的信息。

concatenated = pd.concat([set1.assign(dataset='set1'), set2.assign(dataset='set2')])
Run Code Online (Sandbox Code Playgroud)

然后,我们使用sns.scatterplot最新的seaborn版本(0.9.0)中的函数,并通过style关键字参数对其进行设置,以使标记基于dataset列:

sns.scatterplot(x='Std', y='ATR', data=concatenated,
                hue='Asset Subclass', style='dataset')
plt.show()
Run Code Online (Sandbox Code Playgroud)