如何将3个海洋散点图相互放置?

时间:2020-02-05 11:41:24

标签: matplotlib seaborn

我想在一个“框架”下合并所有三个Seaborn散点图。

plt.figure(figsize=(7,15))
plt.subplots(3,1)
sns.scatterplot(x=train['Garage Area'], y=train['SalePrice'])
plt.show()
sns.scatterplot(x=train['Gr Liv Area'], y=train['SalePrice'])
plt.show()
sns.scatterplot(x=train['Overall Cond'], y=train['SalePrice'])
plt.show()

但是它创建了5个,根据(7,15)的大小,前3个很小,但是后2个不同。

我怀疑应该是

plt.figure(figsize=(7,15))
fig,ax = plt.subplots(3,1)
ax[0] = fig.add_subplot(sns.scatterplot(x=train['Garage Area'], y=train['SalePrice']))
#plt.show()
ax[1] = fig.add_subplot(sns.scatterplot(x=train['Gr Liv Area'], y=train['SalePrice']))
#plt.show()
ax[2] =fig.add_subplot(sns.scatterplot(x=train['Overall Cond'], y=train['SalePrice']))
plt.show()

但是所有3个图都卡在最后一个第3个图表中!

1 个答案:

答案 0 :(得分:1)

以下是一种实现方法:

  • 创建具有3个子图(3行,1列)的图形
  • 使用关键字ax[0]ax[1]ax[2]sns.scatterplot的相应子图传递给三个单独的ax命令

fig, ax = plt.subplots(3, 1, figsize=(7,15))

sns.scatterplot(x=train['Garage Area'], y=train['SalePrice'], ax=ax[0])
sns.scatterplot(x=train['Gr Liv Area'], y=train['SalePrice'], ax=ax[1])
sns.scatterplot(x=train['Overall Cond'], y=train['SalePrice'], ax=ax[2])
plt.show()