利用Python的Matplotlib库绘制CDF(累积分布函数)图像

在实习的时候碰到了很多CDF(累积分布函数)图像,想自己绘制一下CDF但发现Excel好像没有绘制曲线图的功能,所以正好学习一下Python图标绘制库Matplotlib的使用。

有关CDF的定义可以参考维基百科词条【Cumulative Distribution Function】

原始数据

把需要计算的原始数据用逗号分隔开,保存为csv文件,每一行代表一条CDF曲线。比如有丈量的瓷砖的长和宽数据,将长和宽各绘制成一条CDF曲线在一张图里,CSV文件应该保存成:

5.00,6.55,3.22...//长
2.00,3.11,1.33...//宽

代码如下

import numpy as np
import matplotlib.pyplot as plt

filename = 'cdfTest.csv' #CSV文件路径

lines = []
with open(filename,'r') as f:
    lines = f.read().split('\n')

dataSets = []

for line in lines:
    #print(line)
    try:
        dataSets.append(line.split(','))
    except :
        print("Error: Exception Happened... \nPlease Check Your Data Format... ")

temp = []
for set in dataSets:
    temp2 = []
    for item in set:
        if item!='':
            temp2.append(float(item))
    temp2.sort()
    temp.append(temp2)
dataSets = temp

for set in dataSets:

    plotDataset = [[],[]]
    count = len(set)
    for i in range(count):

        plotDataset[0].append(float(set[i]))
        plotDataset[1].append((i+1)/count)
    print(plotDataset)
    plt.plot(plotDataset[0], plotDataset[1], '-', linewidth=2)

plt.show()

效果如下

利用Python的Matplotlib库绘制CDF(累积分布函数)图像_第1张图片

你可能感兴趣的:(Python,Data,Mining,python,matplotlib)