当前位置: 首页 > web >正文

python绘制正态分布和t分布图形

这段代码使用 Python 的 numpymatplotlibscipy 库来绘制正态分布和 t 分布的概率密度函数(PDF)。以下是对代码中复杂或难懂部分的详细解释:

1. 导入库

    import numpy as npimport matplotlib.pyplot as mpfrom scipy import stats
  • numpy 是 Python 中用于数值计算的库,通常使用别名 np
  • matplotlib.pyplot 是用于创建可视化图表的库,这里使用别名 mp
  • scipy.stats 提供了大量的概率分布和统计函数。

2. 生成数据点

    x=np.linspace(-4,4,500)
  • np.linspace(-4, 4, 500) 生成 500 个在 -4 到 4 之间均匀分布的数,这些数将作为绘图时的 x 轴坐标值。

3. 创建图形并设置绘图属性

    mp.figure('Normal and t Distribution',facecolor='lightgray')mp.title('Normal Distribution',fontsize=20)mp.xlabel('x',fontsize=14)mp.ylabel('y',fontsize=14)mp.tick_params(labelsize=10)mp.grid(linestyle=':')
  • mp.figure() 创建一个新的图形窗口,设置窗口标题和背景颜色。
  • mp.title()mp.xlabel()mp.ylabel() 分别设置图表的标题、x 轴标签和 y 轴标签。
  • mp.tick_params() 设置坐标轴刻度标签的字体大小。
  • mp.grid() 为图表添加虚线样式的网格。

4. 绘制正态分布

    mp.plot(x,stats.norm.pdf(x),label='Normal')mp.show()
  • stats.norm.pdf(x) 计算标准正态分布在给定 x 值处的概率密度函数值。
  • mp.plot() 绘制正态分布的概率密度函数曲线。
  • mp.show() 显示绘制好的图表。

5. 绘制 t 分布

    mp.title('t Distribution',fontsize=20)mp.plot(x,stats.t.pdf (x,5),label='n=5')mp.plot(x,stats.t.pdf (x,30),label='n=30')mp.legend()mp.show()
  • stats.t.pdf(x, 5)stats.t.pdf(x, 30) 分别计算自由度为 5 和 30 的 t 分布的概率密度函数值。
  • mp.plot() 绘制 t 分布的概率密度函数曲线。
  • mp.legend() 为图表添加图例,用于区分不同的曲线。
  • mp.show() 显示绘制好的图表。

改进建议

  • 代码可读性:添加注释来解释代码各部分的用途。
  • 性能:当前代码简单高效,没有明显的性能问题。但如果需要绘制更多分布,可以考虑使用循环来减少代码重复。
  • 绘图逻辑:当前代码调用了两次 mp.show(),会打开两个独立的窗口。可以使用子图将两个分布显示在同一个窗口中。
  • 正态分布
    t分布
http://www.xdnf.cn/news/710.html

相关文章:

  • Spring 事务管理核心机制与传播行为应用
  • Keil MDK 编译问题:function “HAL_IncTick“ declared implicitly
  • 牛客java练习题
  • OpenCV 图像调整指南
  • CSS 预处理器:Sass 升级版本 浅学
  • Edge Impulse 训练openMV分类模型(字母+数字)
  • AnimateCC基础教学:制作一个打地鼠简化版
  • 第37讲|AI+农业气象建模:预测极端天气对农业的影响
  • Linux 动、静态库的实现
  • 【代码解读】开源模型 minimind之pretrain
  • Java29:Spring MVC
  • 认识MCP Function Calling AI Agent
  • Redis——内存策略
  • 对于网络资源二级缓存的简单学习
  • 第十章 继承与派生
  • C++ 构造函数调用顺序以及什么是虚析构函数?为什么需要它?
  • Ubuntu下安装和卸载MySQL
  • 简单使用MCP
  • PCA 降维实战:从原理到电信客户流失数据应用
  • 一键升级OpenSSH/OpenSSL修复安全漏洞
  • 【LINUX操作系统】线程基础与分页式存储管理
  • C++初阶-类和对象(中)
  • 【数据分析实战】使用 Matplotlib 绘制散点图
  • Android音视频开发
  • 【网络】通过Samba实现Window挂在Linux服务器路径
  • 【Windows10下PP-OCRv4部署指南‌】
  • 云点数据读写
  • 33-公交车司机管理系统
  • Kubernetes控制平面组件:调度器Scheduler(二)
  • MySQL:9.表的内连和外连