Skip to main content
 首页 » 编程设计

python之Seaborn 在同一个散点图上绘制两个数据集

2025年05月04日11leader

我在 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() 

但我总是得到 2 个单独的图表而不是一个单独的图表 如何在同一张图上可视化两个数据集?我还可以为两个数据集使用相同的图例,但为第二个数据集使用不同的颜色吗?

请您参考如下方法:

以下内容应该适用于最新版本的 seaborn (0.9.0)

import matplotlib.pyplot as plt 
import seaborn as sns 

首先,我们将两个数据集连接成一个并分配一个 dataset 列,这将使我们能够保留关于哪一行来自哪个数据集的信息。

concatenated = pd.concat([set1.assign(dataset='set1'), set2.assign(dataset='set2')]) 

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

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