簡體   English   中英

頻率 python 中帶有 bin 的累積直方圖

[英]Cumulative histogram with bins in frequency python

直方圖條形圖和累積直方圖曲線

我正在尋找一個 python 函數來獲得具有規則間隔頻率(y 軸)而不是值(x 軸)的頻率累積曲線。 在這個圖像上,點的采樣在 x 軸上有規律地間隔,我希望它在 y 軸上是有規律的。

該函數的輸出將是常規百分位數,從 0 到 100,以 n 為步長,以及與這些百分位數對應的值。

它將對應於scipy.stats.cumfreq但 numbins 對應於 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

一個非常粗糙的版本,你可以使用熊貓的qcut

# 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')

輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM