CCDF
CCDF,互补累计分布函数。
简单点说就是,对于x,y=P(值>x).
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
def CCDF(data):
Data = np.array(data)
cdf = Data.cumsum(0)
l = cdf[-1]
cdf = 1.0*cdf / l
ccdf = 1-cdf
return ccdf
def drawCDDF(data):
data=np.array(data)
ents=[]
nums=[]
for d in data:
ents.append(d[0])
nums.append(d[1])
ccdf = CCDF(nums)
plt.plot(ents,ccdf)
plt.xlabel('X轴标签')
plt.xlim(0, 6.5)
plt.xticks(np.arange(0,6.5,0.5))
plt.grid(True)
plt.ylabel('y轴标签')
plt.ylim((0, 1.1))
plt.yticks(np.arange(0, 1.1, 0.1))
plt.show()
def dealData(data):
dic={}
for d in data:
if dic.get(d)!=None:
dic[d]+=1
else:
dic[d]=1
vals_nums = []
for k,v in dic.items():
vals_nums.append([k,v])
return vals_nums
if __name__ == '__main__':
a=[1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1]
drawCDDF(dealData(a))