为 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
。
我想不出为不同的子图设置不同的 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
。