使用Python绘制三种概率曲线详解

 更新时间:2022年03月23日 09:38:54   作者:hhh江月  
这篇文章主要为大家分享了如何利用Python实现概率曲线的绘制,文中绘制了正态分布的曲线和指数分布的曲线,感兴趣的可以了解一下

曲线一

解释

这里是使用matplotlib来绘制正态分布的曲线。

代码实现

import numpy as np
import matplotlib.pyplot as plt


def test1(n, m=500):
    out = []
    result = np.random.normal(1, 5, n * m)
    print(result)
    for i in range(m):
        average0 = 0
        for j in range(n):
            average0 += result[n * i  + j] 
            if j == n - 1:
                out.append(average0 / n)
                average0 = 0
    print(out)
    
    plt.hist(out,bins=25) 
    plt.title("test (1)")
    plt.xlabel("x")
    plt.ylabel("rate")    
    plt.show()

 
test1(5)

曲线二

解释

这里使用了matplotlib.pyplot来实现指数分布的绘制,具体的代码实现参见下面所示:

代码实现

import numpy as np
import matplotlib.pyplot as plt

def test2(n, m=500):
    out0 = []
    result0 = np.random.exponential(scale=1, size=n * m)
    # print(result0)
    for i in range(m):
        average000 = 0
        for j in range(n):
            average000 += result0[n * i  + j] 
            if j == n - 1:
                out0.append(average000 / n)
                average000 = 0
    # print(out0)
    
    plt.hist(out0,bins=25)     
    plt.show()
test2(5)

曲线三

代码实现

import numpy as np
import matplotlib.pyplot as plt
def test3(n1, m111=500):
    out11 = []
    # np.random.standard_t
    result11 = np.random.standard_t(1, size=n1 * m111)
    #  print(result)
    for i in range(m111):
        average0 = 0
        for j in range(n):
            average0 += result11[n1 * i  + j] 
            if j == n - 1:
                out11.append(average0 / n1)
                average0 = 0
    #  print(out11)
    
    plt.hist(out11,bins=20) 
    plt.title("test (3)")   
    plt.show() 
test3(30)

到此这篇关于使用Python绘制三种概率曲线详解的文章就介绍到这了,更多相关Python概率曲线内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论