利用python画图

img


用python绘制随机变量x的分布函数,已经看了挺多资料了,希望来点实质性帮助,不能直接用处理概率的模块,只能用matplotlib

img

import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2, 2, 200)
y = np.array(list(map(lambda x: 1/2*(np.e)**x if x < 0 else 1-1/2*(np.e)**(-x),x)))
plt.plot(x, y)  
plt.show()

在Python中定义数学函数,作为自变量的参数可以是numpy的array数组类型,算得的函数值也构成一个数组。由于numpy拥有大量对数组的高效操作,故对定义分段函数带来很多方便。此外,这样定义的数学函数更便于用matplot包中的工具绘制其图形。下列Python代码定义本例中随机变量X XX的分布函数(累积概率函数)并用以计算概率P ( X > r / 2 ) P(X>r/2)P(X>r/2)(假定r=2)。

import numpy as np                  #导入numpy
def cdf(x, r):
    if type(x)!=type(np.array([])):    #非数组类型
        x=np.array([x])                #凑成统一的数组类型
    y=np.zeros(x.size)                #函数值初始化为0
    d=np.where((x>=0)&(x<=r))        #x中介于0~r的部分
    y[d]=(x[d]/r)**2                #x介于0~r对应的函数值
    d=np.where(x>r)                    #x中大于r的部分
    y[d]=1                            #x中大于r对应的函数值
    if y.size==1:                    #单一函数值
        return y[0]
    return y                        #数组型函数值
print('P(X>r/2)=%.4f'%(1-cdf(x=1/2, r=2))