【问题标题】:Draw subplots boxplot using python使用python绘制子图箱线图
【发布时间】:2023-04-03 14:38:01
【问题描述】:

我想一起绘制两个平行的箱线图。为此,我在 python 中使用了 sub plots 函数,下面是我用于该过程的代码,但我无法从代码中得到很好的输出,因为它已经绘制了两个空图,我如何从输出中删除这些空图?请为此提供想法?

f, axes = plt.subplots(2,2,figsize = (14,10))
sns.boxplot(x='Heating QC',y='SalePrice',hue='Central Air',  data=df ,ax=axes[0,0])
sns.boxplot(x='Heating',y='SalePrice',hue='Central Air',  data=df ,ax=axes[0,1])

输出

更改低于输出后

IndexError                                Traceback (most recent call last)
<ipython-input-543-7dfa6ebf0390> in <module>
      1 f, axes = plt.subplots(1,2,figsize = (14,10))
----> 2 sns.boxplot(x='Heating QC',y='SalePrice',hue='Central Air',  data=df ,ax=axes[0,0])
      3 sns.boxplot(x='Heating',y='SalePrice',hue='Central Air',  data=df ,ax=axes[0,1])

IndexError: too many indices for array

【问题讨论】:

  • plt.subplots(2,2) 创建一个 2x2 的子图网格,这就是为什么您有 4 个图显示的原因。您需要将其更改为 1,22,1 您认为合适。 matplotlib.org/api/_as_gen/matplotlib.pyplot.subplots.html
  • @DavidBuck 是的,我更改了 plt.subplots(1,2) 然后没有任何输出,只给出错误消息并清空两个图表。我在问题部分添加了输出和错误消息。
  • 您的 ax 现在只需更改为 axes[0]axes[1],因为您只有一个一维的子图数组。此处介绍:stackoverflow.com/questions/54170394/…
  • @DavidBuck 现在代码可以正常工作了,感谢您的支持。

标签:
python
seaborn
boxplot
subplot
graph-visualization