假设我有以下意见:
1,2,3,4,5,6,7,100
现在,我想做一个图,是如何将观测结果按百分比的方式分布的:
我的问题:
谢谢
发布于 2016-03-01 08:14:06
我不知道这样的图会被称为什么(编辑:它似乎被称为累积频率图,或类似的东西)。然而,这很容易做到。
本质上,如果您已经对数据进行了排序,那么<=值在索引i中的百分比就是(i+1)/len(data)。使用满足这一要求的arange创建x数组很容易。因此,例如:
from matplotlib import pylab
import numpy as np
a = np.array([1,2,3,4,5,6,7,100])
pylab.plot( np.arange(1,len(a)+1)/len(a), a, # This part is required
'-', drawstyle='steps' ) # This part is stylistic给予:

如果您希望x轴从0转到100,而不是从0转到
请注意,这对于示例数据是有效的,因为它已经被排序。如果您正在使用未排序的数据,那么首先使用np.sort对其进行排序,例如:
c = np.random.randn(100)
c.sort()
pylab.plot( np.arange(1,len(c)+1)/len(c), c, '-', drawstyle='steps' )

https://stackoverflow.com/questions/35716746
复制相似问题