matplotlib .plot函数绘制多次

时间:2017-01-12 02:16:49

标签: python numpy matplotlib plot

所以我做了一个代码来比较一些使用matplotlib和scypy的分布拟合。那就是代码:

    listvar = [sessioninterval, playtime, sessiontime, pausetime] 
listnames1 = ["Sessioninterval", "Playtime", "Sessiontime", "Pausetime"]

expfit=  []
normfit = []
lognormfit = []

for p in listvar:
    expfit.append( stats.expon.fit(p, floc = 0))
    normfit.append(stats.norm.fit(p))
    lognormfit.append(stats.lognorm.fit(p))

for q in range(4):
    plt.hist(listvar[q], bins = len(listvar[q]), normed = True, cumulative = True, histtype = "step", color = "black", label = "EDF")
    plt.plot(listvar[q],stats.expon.cdf(listvar[q],*expfit[q]) , color = 'blue',label = "Exponencial Fit: " + str(expfit[q]))
    plt.plot(listvar[q],stats.norm.cdf(listvar[q], *normfit[q]), '-',color =  'red', label = "Normal Fit: "+ str(normfit[q]))
    plt.plot(listvar[q],stats.lognorm.cdf(listvar[q], *lognormfit[q]), '-',color =  'green', label = "Log-Normal Fit: " + str(lognormfit[q]) )
    plt.title("Probability Fit: " + str(listnames1[q]))
    plt.xlabel("Value")
    plt.ylabel("Probability")
    plt.xlim(min(listvar[q]), max(listvar[q]))
    plt.ylim(0,1)
    plt.legend( bbox_to_anchor = (1.05,-0.1), fontsize = 10)
    plt.gcf().subplots_adjust(bottom=0.24)
    plt.savefig("Probability_" + listnames1[q] +".png")
    plt.clf()

这是结果的一个例子

enter image description here

为什么会这样?谢谢!

1 个答案:

答案 0 :(得分:0)

Matplot要求在绘图之前对点进行整理。

您所看到的是它正在连接未分类的点。它没有多次绘图。