• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

正态分布的分布函数和概率密度matplotlib

武飞扬头像
找一个树洞就笑吧
帮助1

绘制正态分布的分布函数和概率密度曲线

1.正态分布的概率密度函数和分布函数:

学新通

学新通

2.代码实现:

import sympy
import numpy as np
import matplotlib.pyplot as plt


# -----------构造数据--------------
# u=0 σ=1
x_1, m_1 = [], []
y_1, n_1 = [], []
for i in np.arange(-10, 10, 0.1):
    x_1.append(i)
    y_1.append(np.exp(-(i * i / 2.0))/np.sqrt(2*np.pi))

    x = sympy.symbols('x')
    y = sympy.exp(-(x * x / 2.0))/sympy.sqrt(2*np.pi)
    Y = sympy.integrate(y)
    res = Y.subs(x, i) - Y.subs(x, -float('inf'))
    m_1.append(i)
    n_1.append(res)
# u=0 σ=2
x_2, m_2 = [], []
y_2, n_2 = [], []
for i in np.arange(-10, 10, 0.1):
    x_2.append(i)
    y_2.append(np.exp(-(i * i / (2.0*2*2)))/(np.sqrt(2*np.pi)*2))

    x = sympy.symbols('x')
    y = sympy.exp(-(x * x / (2.0*2*2))) / (sympy.sqrt(2 * np.pi)*2)
    Y = sympy.integrate(y)
    res = Y.subs(x, i) - Y.subs(x, -float('inf'))
    m_2.append(i)
    n_2.append(res)
# u=1 σ=1
x_3, m_3 = [], []
y_3, n_3 = [], []
for i in np.arange(-10, 10, 0.1):
    x_3.append(i)
    y_3.append(np.exp(-((i-1) ** 2 / 2.0)) / np.sqrt(2 * np.pi))

    x = sympy.symbols('x')
    y = sympy.exp(-((x-1) ** 2 / 2.0)) / sympy.sqrt(2 * np.pi)
    Y = sympy.integrate(y)
    res = Y.subs(x, i) - Y.subs(x, -float('inf'))
    m_3.append(i)
    n_3.append(res)

# --------------可视化概率密度函数---------------------------
plt.title("正态分布概率密度")                       # 设置标题
plt.rcParams['font.sans-serif'] = 'KaiTi'        # 设置字体
plt.rcParams['axes.unicode_minus'] = False       # 正常显示负号
plt.plot(x_1, y_1, c='red', label='μ=0 σ=1')     # 添加数据
plt.plot(x_2, y_2, c='green', label='μ=0 σ=2')   # 添加数据
plt.plot(x_3, y_3, c='blue', label='μ=1 σ=1')    # 添加数据
plt.xlabel('x', loc='right')                     # x轴标签
plt.ylabel('y', loc='top')                       # y轴标签
plt.legend(framealpha=1, frameon=True)           # 添加图标
plt.show()                                       # 展示

# --------------可视化分布函数---------------------------------
plt.title("正态分布分布函数")
plt.rcParams['font.sans-serif'] = 'KaiTi'
plt.rcParams['axes.unicode_minus'] = False
plt.plot(m_1, n_1, c='red', label='μ=0 σ=1')
plt.plot(m_2, n_2, c='green', label='μ=0 σ=2')
plt.plot(m_3, n_3, c='blue', label='μ=1 σ=1')
plt.xlabel('x', loc='right')
plt.ylabel('y', loc='top')
plt.legend(framealpha=1, frameon=True)
plt.show()
学新通

3.结果展示:

学新通
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaffcf
系列文章
更多 icon
同类精品
更多 icon
继续加载