分配图中每个仓的计数

时间:2020-09-29 07:40:31

标签: python seaborn histogram

有什么方法可以获取sns.distplot中每个bin的计数吗?例如,

sns.distplot(df.intervalL, kde=False, bins=[0,25,50,75,100], color='navy',rug=False, norm_hist=False) 

我想获取每个垃圾箱中的计数。 谢谢

1 个答案:

答案 0 :(得分:0)

sns.distplot返回在其上创建绘图的ax。这些条形图可以在ax.containers[0]中作为矩形进行访问,您可以对其进行调查。

请注意,在Seaborn 0.11中,sns.distplot已替换为sns.histplot。 (下面的代码仍可与sns.distplot一起使用,显示警告该功能已被弃用。)

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

data = np.random.randn(100, 10).cumsum(axis=1).ravel()
data -= data.min()
data  *= 100 / data.max()
bins = [0,25,50,75,100]
ax = sns.histplot(data, kde=False, bins=bins, color='navy')
for bar, b0, b1 in zip(ax.containers[0], bins[:-1], bins[1:]):
    print(f'{b0:3d} - {b1:3d}: {bar.get_height():4.0f}')

输出:

  0 -  25:   57
 25 -  50:  513
 50 -  75:  382
 75 - 100:   48

example plot

如果只需要没有绘图的值,也可以只调用counts, _ = np.histogram(data, bins=bins)docs)。