如何使用plt.hist生成一个归一化为另一个值的直方图,即不是1?

时间:2017-10-18 00:51:40

标签: python matplotlib histogram

我的速度分布具有复杂的归一化因子。没有这个因素,它的积分是0.95。 我使用蒙特卡罗生成相同的速度分布。我想检查生成的速度数组,看看它是否正常工作。绘制它的形状显示它是,但我想知道是否有任何方法使python制作一个规范化为任意值的直方图? 提前全部谢谢。

   def VelocityDistribution (velocity):
       v = velocity
       v0 = 220

       ve = v0*(1.05)
       return 100/95.2032*np.sqrt(1/np.pi) * (v/(v0*ve)) * (np.exp((-(v-
   v0)**2)/(v0**2)) - np.exp((-(v+v0)**2)/(v0**2)))
   v = np.linspace(0,800,10000)
   v0 = 220
   ve = v0*(1.05)

    VelocityDistribution1 = 100/95.2032*np.sqrt(1/np.pi) * (v/(v0*ve)) * (np.exp((-(v-v0)**2)/(v0**2)) - np.exp((-(v+v0)**2)/(v0**2)))
    i=0
    V = []
    while i < 100000:
        randPro = random.uniform(0.0, 0.003)
        randv = random.uniform(0,800)
        if VelocityDistribution(randv) >= randPro :
            V.append(randv)
            i+=1
    plt.hist(V, bins = 80, normed = 0.80)
    plt.title("Velocity Distribution of WIMP particles")
    plt.xlabel('Velocity (km/s)')
    plt.ylabel('Probability')
    plt.plot(v, VelocityDistribution1, 'r')
    plt.show()

0 个答案:

没有答案