如何将图例添加到直方图?

How to add legend to a histogram?

我有一个按性别分类的 fee_rate 直方图存储在一个名为 fees 的数据框中。

为了绘制相同的图,我使用了以下代码:

axarr = fees.hist(column='fee_rate', by = 'gender')


for ax in axarr.flatten():
 ax.set_xlabel("fee_rate")
 ax.legend(gender)

我需要在情节上有一个图例,说明情节是男性还是女性。但是使用上面的代码,我在两个地块上都得到了“女性”。有人可以指出错误吗?

  • 貌似标题上已经说明左图是女图,右图是男图。因此,一种选择是完全省略图例。

  • 如果你硬要在上面加上图例,可以试试ax.legend((ax.get_title(),))

这两个情节的适当图例不是性别,而是 'tip_rate' 这个词,因为这就是正在策划的内容。性别已经显示为每个子图的标题。您可以通过设置图例 = True 来验证这一点。如果您选择这样做,您可以摆脱标记 x_axis 的循环。或者,您可以完全忘记图例并使用循环来标记 x_axis.

tips.hist(column='tip_rate', by = 'sex',legend=True)
plt.suptitle('TIP RATES BY SEX')
plt.show()