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

火柴棒图python绘画

使用Python绘制二项分布的概率质量函数(PMF)

在这篇博客中,我们将探讨如何使用Python中的scipy库和matplotlib库来绘制二项分布的概率质量函数(PMF)。二项分布是统计学中常见的离散概率分布,描述了在固定次数的独立试验中,成功次数的分布情况。
在这里插入图片描述

代码示例

以下是一个完整的代码示例,展示了如何绘制二项分布的PMF:

from scipy.stats import binom
import pylab as plt# 定义二项分布的参数
n = 6  # 试验次数
p = 0.3  # 成功概率# 生成可能的成功次数
x = plt.arange(7)  # 0到6的整数
y = binom.pmf(x, n, p)  # 计算每个成功次数的概率# 创建第一个子图:竖线图
plt.subplot(121)
plt.plot(x, y, 'ro')  # 绘制红色圆点
plt.vlines(x, 0, y, 'k', lw=2, alpha=0.5)  # 绘制竖线
plt.xlabel('成功次数')
plt.ylabel('概率')
plt.title('竖线图')# 创建第二个子图:茎叶图
plt.subplot(122)
plt.stem(x, y, use_line_collection=True)  # 绘制茎叶图
plt.xlabel('成功次数')
plt.ylabel('概率')
plt.title('茎叶图')# 保存图像并显示
plt.savefig("figure9_2.png", dpi=500)
plt.show()
代码解释
  1. 导入库

    from scipy.stats import binom
    import pylab as plt
    

    我们导入了scipy.stats中的binom模块来处理二项分布,并导入pylab作为绘图工具。

  2. 定义参数

    n = 6  # 试验次数
    p = 0.3  # 成功概率
    

    这里我们定义了二项分布的参数:试验次数n和成功概率p

  3. 生成数据

    x = plt.arange(7)  # 0到6的整数
    y = binom.pmf(x, n, p)  # 计算每个成功次数的概率
    

    我们生成了可能的成功次数x(从0到6),并计算了每个成功次数的概率y

  4. 绘制竖线图

    plt.subplot(121)
    plt.plot(x, y, 'ro')  # 绘制红色圆点
    plt.vlines(x, 0, y, 'k', lw=2, alpha=0.5)  # 绘制竖线
    plt.xlabel('成功次数')
    plt.ylabel('概率')
    plt.title('竖线图')
    

    在第一个子图中,我们绘制了竖线图,使用红色圆点表示每个成功次数的概率,并用黑色竖线从x轴延伸到每个点。

  5. 绘制茎叶图

    plt.subplot(122)
    plt.stem(x, y, use_line_collection=True)  # 绘制茎叶图
    plt.xlabel('成功次数')
    plt.ylabel('概率')
    plt.title('茎叶图')
    

    在第二个子图中,我们绘制了茎叶图,使用竖线和圆点来表示每个成功次数的概率。

  6. 保存并显示图像

    plt.savefig("figure9_2.png", dpi=500)
    plt.show()
    

    最后,我们将图像保存为高分辨率的PNG文件,并显示图像。

总结

通过这篇博客,我们学习了如何使用Python绘制二项分布的概率质量函数(PMF)。我们使用了scipy库来计算二项分布的概率,并使用matplotlib库绘制了竖线图和茎叶图。这些图表可以帮助我们更好地理解二项分布的特性和行为。

希望这篇博客对你有所帮助!如果你有任何问题或建议,欢迎在评论区留言。谢谢阅读!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring中@Transactional的实现和原理
  • 嵌入式驱动源代码(9):Linux内核移植
  • 我的前端实习之旅
  • PyCharm\VsCode——Python第三方库下载换源
  • 老年生活照护实训室:为养老服务业输送专业人才
  • 如何挑选适合的需求池管理系统?10款优质工具分享
  • 韦尔股份:深蹲起跳?
  • Flexcel学习笔记
  • 32 华三vlan案例+STP
  • 堆叠的作用
  • 代理模式和Java中的动态代理【开发实践】
  • Linux——多线程(五)
  • 用python生成词频云图(python实例二十一)
  • 升级springboot3.2集成shiro的问题
  • 京准电钟:云计算中NTP网络时间服务器的作用是什么?
  • [Vue CLI 3] 配置解析之 css.extract
  • 【RocksDB】TransactionDB源码分析
  • 2019.2.20 c++ 知识梳理
  • android 一些 utils
  • canvas绘制圆角头像
  •  D - 粉碎叛乱F - 其他起义
  • Electron入门介绍
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • FineReport中如何实现自动滚屏效果
  • HTTP中GET与POST的区别 99%的错误认识
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 自制字幕遮挡器
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • !!java web学习笔记(一到五)
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #NOIP 2014#Day.2 T3 解方程
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • (LLM) 很笨
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (算法)求1到1亿间的质数或素数
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET 8 编写 LiteDB vs SQLite 数据库 CRUD 接口性能测试(准备篇)
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net Core 中间件验签
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 给NuGet包添加Readme
  • @Transactional事务注解内含乾坤?
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ SNOI 2013 ] Quare
  • [AI]ChatGPT4 与 ChatGPT3.5 区别有多大
  • [android] 手机卫士黑名单功能(ListView优化)
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [C# 开发技巧]实现属于自己的截图工具
  • [C++]入门基础(1)
  • [CISCN2021 Quals]upload(PNG-IDAT块嵌入马)