结合不同的 seaborn 分布图

Combine different seaborn distribution plots

我将 seaborn 和 matplotlib 与 Python3 结合使用来可视化两个不同数组的分布。我使用的代码是:

# Create two matrices (can be 'n' dimensional)-
x = np.random.normal(size = (5, 5))
y = np.random.normal(size = (5, 5))

# On using seaborn, it creates two different plots-
sns.displot(data = x.flatten(), label = 'x')
sns.displot(data = y.flatten(), label = 'y')

plt.legend(loc = 'best')
plt.show()

# Whereas, matplotlib merges these two distributions into one plot-
plt.hist(x = x.flatten(), label = 'x')
plt.hist(x = y.flatten(), label = 'y')

plt.legend(loc = 'best')
plt.show()

如何获得将 matplotlib 中实现的这两个分布合并到 seaborn 中的结果?

首先将您的数据合并到 pandas.DataFrame 中,然后使用 displot:

import pandas as pd
df = pd.DataFrame({'x': x.flatten(), 'y': y.flatten()})
sns.displot(data=df)

或者直接使用字典:

sns.displot(data={'x': x.flatten(), 'y': y.flatten()})