在 seaborn 中绘制重叠直方图

Plot overlapping histogram plot in seaborn

我想在 seaborn 中绘制两个很好重叠的 histplots,这是我的代码:

sns.histplot(data=data[feature_1], color='r')
sns.histplot(data=data[data.feature_2 == 1][feature_1], color='g')

它给出了我想要的 2 个可能值的结果:

但对于多个值,它不太适合:

有什么想法或建议可以使它看起来漂亮吗?

第二个图中的问题是直方图在数据的最小值和最大值之间定义了一定数量的 bin(可能大约 10 个;这取决于数据集的大小和方差)。当您有少量整数值时,这并不理想。如果添加 discrete=True,它将定义以最小值和最大值之间(含)之间的每个数字为中心的 bin,产生与分类数据直方图类似的效果。

对于分类数据,很容易推断出您希望 bin 对应于唯一的数据值。当数据是数字时更困难。如果 dtype 是整数,您可能会认为这很有意义,但会想到明显的反例。想象一下人口中的年龄直方图,或者更糟糕的是,薪水。在这些情况下,单位宽度的箱子会太小。因此,离散分箱是严格选择加入数字数据的。