为熊猫箱线图(groupby)设置无标题

Posted

技术标签:

【中文标题】为熊猫箱线图(groupby)设置无标题【英文标题】:Set no title for pandas boxplot (groupby) 【发布时间】:2014-06-23 19:21:16 【问题描述】:

当绘制一个按另一列分组的 pandas 箱线图时,pandas 会自动为该图添加一个标题,即“箱线图按...分组”。有没有办法消除它?我尝试使用

suptitle('')

根据Pandas: boxplot of one column based on another column

但这似乎不起作用。我正在使用最新的 pandas (0.13.1) 版本。

【问题讨论】:

【参考方案1】:

在尝试了所有建议之后,只有这个修改对我有用,这也可以让你修改其他参数:

ax = df.boxplot(by ='value', column =['category'], grid = False);
plt.title('')
plt.suptitle('')
ax.set_title('');
ax.set_xlabel("x_label");
ax.set_ylabel("y_label");
ax = plt.show()

【讨论】:

【参考方案2】:

以上解决方案均不适合我,但这个解决方案对我有用:

axes = df.boxplot(column=values, by=index, ax=ax, rot=90)
axes.set_title('')

【讨论】:

【参考方案3】:

我遇到了同样的问题。最终使用this solution

import matplotlib.pyplot as plt    
# df is your dataframe
df.boxplot(column='value', by='category')
title_boxplot = 'awesome title'
plt.title( title_boxplot )
plt.suptitle('') # that's what you're after
plt.show()

【讨论】:

嗨,尼克。我注意到您仍然建议仅在问题中添加 dataframe 标记的编辑。请不要。我意识到 pandas 标记摘录曾经明确表示应该这样做,但它最近已更新,因为该指导并没有真正意义 - 请参阅 meta.***.com/q/379244/1709587 了解有关此的讨论。不是你的错,因为你在摘录中的指导是真诚的,但这些编辑充其量是毫无意义的,需要审阅者的时间。阅读此评论后,请随意将其标记为“不再需要”。【参考方案4】:

我对此有疑问,并且通常不喜欢 pandas 添加的罐头标题,因为它依赖于通常从未准备好发布的列名。

您可以在 ~\pandas\plotting\_core.py 中编辑源代码

在第 2698 行你会发现:

fig.suptitle('Boxplot grouped by byline'.format(byline=byline))

简单注释掉这一行,pandas 将不再默认将标题添加到箱线图的顶部。在升级 pandas 版本时,您必须重新进行此更改。

【讨论】:

【参考方案5】:

确保您在右图中拨打suptitle('')

In [23]: axes = df.boxplot(by='g')

In [24]: fig = axes[0][0].get_figure()

In [25]: fig.suptitle('')
Out[25]: <matplotlib.text.Text at 0x109496090>

【讨论】:

我在尝试这个时收到'AxesSubplot' object is not subscriptable。自 2014 年的这个答案以来,有什么变化吗? 我遇到了同样的问题。尼克(2019 年 1 月 20 日)的回答对我有用。

以上是关于为熊猫箱线图(groupby)设置无标题的主要内容,如果未能解决你的问题,请参考以下文章

为 groupby 对象绘制箱线图

使用熊猫的箱线图

带有熊猫和 Jupyter 笔记本的交互式箱线图

使用 groupby 创建箱线图

如何按中值对熊猫中的箱线图进行排序?

更改熊猫中箱线图的面色