为 seaborn 中的子图设置不同的轴限制

Setting different axis limits for subplots in seaborn

我想不出为不同的子图设置不同的 Y 轴限制的方法。它将最后一个语句 'ax6.set_ylim(0,68)' 作为所有子图的 Y 限制。非常欢迎任何帮助。

fig, (ax1, ax2, ax3,ax4,ax5,ax6) = plt.subplots(nrows=6,ncols=1, sharey=True,figsize=(14,14))


sns.regplot(x=df['Income'], y=df['Murder'], ax=ax1,scatter_kws={'alpha': 0.9, 's': 2.0, 'rasterized': 
False, 'zorder': 1})
ax1.set_ylim(0,10)


sns.regplot(x=df['Income'], y=df['Life Exp'], ax=ax2,scatter_kws={'alpha': 0.9, 's': 2.0, ' 
rasterized': False, 'zorder': 1})
ax2.set_ylim(0,100)


sns.regplot(x=df['Income'], y=df['Illiteracy'], ax=ax3,scatter_kws={'alpha': 0.9, 's': 2.0, 
'rasterized': False, 'zorder': 1})
ax3.set_ylim(0,5)


sns.regplot(x=df['Income'], y=df['Frost'], ax=ax4)
ax4.set_ylim(0,200)

sns.regplot(x=df['Income'], y=df['Population'], ax=ax5)
ax5.set_ylim(0,21198)


sns.regplot(x=df['Income'], y=df['HS Grad'], ax=ax6)
ax6.set_ylim(0,68)

您在创建轴 (plt.subplots(..., sharey=True, ...)) 时设置了 sharey=True,根据定义,这意味着所有子图都具有相同的范围(ax6 中的那个,因为它是最后你正在设置)。

如果您不想要这种行为,只需传递 sharey=False