概率分布图

时间:2020-08-08 14:56:51

标签: python

我正在为此读取一个.dat文件,并且试图绘制高斯概率分布。它曾经绘制过(尽管不是我想要的),但是当我在VS中运行它时,它不再绘制。请帮忙!

    #!/usr/bin/env python

import matplotlib
import numpy as np
from matplotlib.backends.backend_pdf import PdfPages
import matplotlib.pyplot as plt

data = np.loadtxt('positionVSMeanSquareOutput.dat')
dataProb = np.loadtxt('positionVSProbabilityOutput2.dat')

time = data[:, 0] + 1
MSDth = time            #<x^2> analytical
MSDnum = data[:, 1]     #<x^2> numerical / computer simulated
MSDerr = data[:, 3]     #error bar of <x^2>

Fsq1 = data[:, 4]       #F_s(q1,x(t))
Fsq1num = data[:, 10]       #F_s(q1,x(t)) numerical
Fsq1err = data[:, 7]    #error bar of F_s(q1,x(t))

Fsq2 = data[:, 5]       #F_s(q2,x(t))
Fsq2num = data[:, 11]       #F_s(q1,x(t)) numerical
Fsq2err = data[:, 8]    #error bar of F_s(q2,x(t))

Fsq3 = data[:, 6]       #F_s(q3,x(t))
Fsq3num = data[:, 12]       #F_s(q1,x(t)) numerical
Fsq3err = data[:, 9]    #error bar of F_s(q2,x(t))

xAxis = dataProb[:,0]   #Probability
yAxis = dataProb[:,1]
binomDist = dataProb[:,2]

with PdfPages('positionVSMeanSquareOutput.pdf') as pdf:
# ======== PROBABILITY ==============   
# TASK: To create a better plot for the distribution

    fig=plt.figure()
    ax.scatter(xAxis, yAxis, color='r') 
    ax.scatter(xAxis, binomDist, color='b')

    plt.legend(loc=4)
    #plt.show()
    pdf.savefig()
    plt.close()

1 个答案:

答案 0 :(得分:0)

调用ax.scatter时,ax对象不会在任何地方初始化。

尝试将fig=plt.figure()替换为

fig, ax = plt.subplots()

https://matplotlib.org/3.3.0/api/_as_gen/matplotlib.pyplot.subplots.html?highlight=subplots#matplotlib.pyplot.subplots