使用matplotlib

时间:2018-08-20 10:09:21

标签: python matplotlib plot graphics cdf

我正在尝试为我拥有的不同值列表(包含在不同文件中)绘制CDF。 这是代码:

import argparse, os, math
import fileLibrary
import numpy as np
import matplotlib.pyplot as plt

parser = argparse.ArgumentParser()
parser.add_argument('-d', type=str, dest='intervalsDir', help='the directory which contains all the intervals for the CDF')
arguments = parser.parse_args()
intervalsDir = arguments.intervalsDir

def cdf(dataList, groupName):
    dataLen = len(dataList)
    dataSet = sorted(set(dataList))
    bins = np.append(dataSet, dataSet[-1]+1)
    counts, binEdges = np.histogram(dataList, bins=bins, density=False)
    counts = counts.astype(float) / dataLen
    cdf = np.cumsum(counts)
    plt.plot(binEdges[0:-1], cdf, linestyle='--',  color='b')
    plt.ylim((0,1))
    plt.ylabel("CDF")
    plt.xlabel(groupName)
    plt.grid(True)
    plt.show()

for fileName in os.listdir(intervalsDir):
    parsedFileName = fileName.split(".")
    xLabel = parsedFileName[0]
    filePath = intervalsDir + "/" + fileName
    dataList = fileLibrary.createFileList(filePath)
    myDataList = []
    for d in dataList:
        x = int(d)

我得到以下结果(对于第一个文件,其他文件类似): Result

我从CDF获取的值列表由0到1000之间的大多数值组成。然后,我的值大得多,只有2个数字接近最后一个刻度250000。每个列表包含超过60000个值。 我希望我的x斧具有不同的刻度,主要显示较小的值。 我是python和matplotlib的新手,所以我不知道该怎么做。 预先感谢您的帮助。

0 个答案:

没有答案