问题描述
我不知道如何为不同的子图设置不同的 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,'
rasterized': False,'zorder': 1})
ax2.set_ylim(0,100)
sns.regplot(x=df['Income'],y=df['Illiteracy'],ax=ax3,'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)
解决方法
您在创建轴 (sharey=True
) 时设置了 plt.subplots(...,sharey=True,...)
,根据定义,这意味着所有子图都具有相同的范围(来自 ax6
的那个,因为它是您的最后一个正在设置)。
如果您不想要这种行为,只需传递 sharey=False
。