gpt4 book ai didi

python - 使用子图时如何停止在 jupyter 中打印两次图?

转载 作者:行者123 更新时间:2023-12-03 19:48:35 24 4
gpt4 key购买 nike

我正在处理泰坦尼克号数据,我正在尝试结合使用 pyplot 和 seaborn 来生成一些子图。我编写了以下代码以在 3x2 网格中创建 6 个子图;

plt.rcParams['figure.figsize'] = [12, 8]
fig, axes = plt.subplots(nrows=3, ncols=2)
plt.tight_layout()

_ = sns.catplot(x='Pclass', y='Age', data=train_df, kind='box', height=8, palette=col_pal, ax=axes[0, 0])
_ = sns.catplot(x='Embarked', y='Age', data=train_df, kind='box', height=8, palette=col_pal, ax=axes[0, 1])
_ = sns.catplot(x='Sex', y='Age', data=train_df, kind='box', height=8, palette=col_pal, ax=axes[1, 0])
_ = sns.catplot(x='Sex', y='Age', hue='Pclass', data=train_df, kind='box', height=8, palette=col_pal, ax=axes[1, 1])
_ = sns.catplot(x='SibSp', y='Age', data=train_df, kind='box', height=8, palette=col_pal, ax=axes[2, 0])
_ = sns.catplot(x='Parch', y='Age', data=train_df, kind='box', height=8, palette=col_pal, ax=axes[2, 1])
plt.show()

当我在我的笔记本上运行它时,它成功地创建了所需的绘图,但是,它随后也打印出 6 个空白绘图。 enter image description here

我怎样才能阻止这些空图打印到我的输出中?

最佳答案

与其他 sns 图不同,catplot 生成一个图而不是轴。这就是为什么要在每次 catplot 执行后使用 plt.close() 来修复这种奇怪的行为:

fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(8, 12))
fig.tight_layout()

sns.catplot(x='pclass', y='age', data=data, kind='box', ax=axes[0, 0])
plt.close()
sns.catplot(x='embarked', y='age', data=data, kind='box', ax=axes[0, 1])
plt.close()
sns.catplot(x='sex', y='age', data=data, kind='box', ax=axes[1, 0])
plt.close()
sns.catplot(x='sex', y='age', hue='pclass', data=data, kind='box', ax=axes[1, 1])
plt.close()
sns.catplot(x='sibsp', y='age', data=data, kind='box', ax=axes[2, 0])
plt.close()
sns.catplot(x='parch', y='age', data=data, kind='box', ax=axes[2, 1]);
plt.close()

plt.show()

输出:

catplots

关于python - 使用子图时如何停止在 jupyter 中打印两次图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60042218/

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