【问题标题】:Cumulative histogram with bins in frequency python频率python中带有bin的累积直方图
【发布时间】:2020-03-28 06:39:32
【问题描述】:

我正在寻找一个 python 函数来获得具有规则间隔频率(y 轴)而不是值(x 轴)的频率累积曲线。在这张图片上,点的采样在 x 轴上是有规律的,我希望它在 y 轴上是有规律的。

该函数的输出将是常规百分位数,从 0 到 100,步长为 n,以及与这些百分位数相对应的值。

它将对应于scipy.stats.cumfreq,但数字对应于 y 轴(频率或百分比)而不是 x 轴(值)。

这个函数是我正在寻找的草稿:

def cumfreq_even_freq(array, nbins):
    array = array.flatten()
    array.sort()
    step = len(array)/nbins
    percents = [(i*step * step)/len(array) for i in range(nbins)]
    values = [array[i*step +step] for i in range(nbins)]
    return percents, values

【问题讨论】:

    标签: python numpy scipy cumulative-frequency


    【解决方案1】:

    一个很粗略的版本,可以用pandas的@​​987654323@:

    # toy data
    np.random.seed(1)
    a = np.random.rand(100)
    
    # Quantile cut into 10 bins
    cuts = (pd.qcut(a, np.arange(0,1,0.1))    # change arange to your liking
              .value_counts().cumsum()
           ) 
    
    plt.plot([a.right for a in cuts.index], cuts, marker='s')
    

    输出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 2016-04-30
      • 2016-08-06
      • 2012-10-16
      • 1970-01-01
      • 2013-08-23
      • 2015-12-05
      相关资源
      最近更新 更多