Python 频率中带仓位的累积直方图

Python 频率中带仓位的累积直方图,python,numpy,scipy,cumulative-frequency,Python,Numpy,Scipy,Cumulative Frequency,我正在寻找一个python函数来获得频率的累积曲线,它具有规则间隔的频率(y轴)而不是值(x轴)。在这张图片上,点的采样在x轴上是有规律的,我希望在y轴上是有规律的 函数的输出将是规则的百分位数,从0到100,按n的步长,以及对应于这些百分位数的值 它将对应于y轴(频率或百分比),但与numbins对应,而不是x轴(值) 此函数是我正在寻找的内容的草稿: def cumfreq_偶数_freq(数组,nbins): array=array.flatte() array.sort() 阶跃=len

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

函数的输出将是规则的百分位数,从0到100,按n的步长,以及对应于这些百分位数的值

它将对应于y轴(频率或百分比),但与numbins对应,而不是x轴(值)

此函数是我正在寻找的内容的草稿:

def cumfreq_偶数_freq(数组,nbins):
array=array.flatte()
array.sort()
阶跃=len(数组)/nbins
百分比=[(i*步进*步进)/len(数组)表示范围内的i(nbins)]
值=[范围内i的数组[i*步长+步长](nbins)]
返回百分比、值

非常粗略的版本,您可以使用pandas的
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')
输出: