gpt4 book ai didi

python - 如何在seaborn中设置子图的标题和ylims

转载 作者:行者123 更新时间:2023-11-30 22:15:35 27 4
gpt4 key购买 nike

我有这样的代码,它绘制了 2 个子图。我想为两个子图设置 ylim 和标题,但它仅适用于最后一个子图。

   TREATMENTINSTIDs = atg_cg.TREATMENTINSTID.unique()
sn.set_style('ticks')
fig, ax = plt.subplots(nrows = 2,ncols = 1)
fig.set_size_inches(10, 12)
i = 0
#plt.title(TREATMENTINSTID)

for TREATMENTINSTID in TREATMENTINSTIDs:
plt.title(TREATMENTINSTID)
plt.ylim(0, 1000)
sn.violinplot(x="group_type", y="arpu" , hue = 'isSMS',ax=ax[i],cut=0,
data=atg_cg[atg_cg.TREATMENTINSTID == TREATMENTINSTID],inner="quartile", split=True, title = TREATMENTINSTID)
sn.despine(left=True)
i = i + 1

enter image description here

这里出了什么问题?为什么第一个子图漂浮或翱翔在 x 轴上方?

最佳答案

您可能希望使用面向对象的 API 设置轴对象本身的标题和限制。这意味着您可以控制单个子图上的标题等,这在使用多个子图时比 plt.title 更容易:

创建图窗时,您已经拥有了坐标区对象 fig, ax = plt.subplots(nrows = 2,ncols = 1)。因此,请使用 set_titleset_ylim 修改 title 和 ylim 的设置。

您的代码变为:

TREATMENTINSTIDs = atg_cg.TREATMENTINSTID.unique()
sn.set_style('ticks')
fig, ax = plt.subplots(nrows=2, ncols=1)
fig.set_size_inches(10, 12)
i = 0
# plt.title(TREATMENTINSTID)

for TREATMENTINSTID in TREATMENTINSTIDs:
ax[i].set_title(TREATMENTINSTID)
ax[i].set_ylim(0, 1000)
sn.violinplot(x="group_type", y="arpu", hue='isSMS', ax=ax[i], cut=0,
data=atg_cg[atg_cg.TREATMENTINSTID == TREATMENTINSTID], inner="quartile", split=True,
title=TREATMENTINSTID)
sn.despine(left=True)
i = i + 1

关于python - 如何在seaborn中设置子图的标题和ylims,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50232363/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com