火柴棒图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库绘制了竖线图和茎叶图。这些图表可以帮助我们更好地理解二项分布的特性和行为。

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

相关推荐

  1. python绘制等高线

    2024-07-11 06:06:05       31 阅读
  2. python绘制三维

    2024-07-11 06:06:05       29 阅读
  3. python绘制热点

    2024-07-11 06:06:05       30 阅读
  4. python Opencv 中绘制

    2024-07-11 06:06:05       49 阅读
  5. python绘制散点

    2024-07-11 06:06:05       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 06:06:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 06:06:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 06:06:05       57 阅读
  4. Python语言-面向对象

    2024-07-11 06:06:05       68 阅读

热门阅读

  1. Sqlmap中文使用手册 - Target模块参数使用

    2024-07-11 06:06:05       27 阅读
  2. Grind 75 - Leetcode146 LRU缓存

    2024-07-11 06:06:05       25 阅读
  3. vue3 学习笔记02 -- 配置路由router+导航守卫

    2024-07-11 06:06:05       26 阅读
  4. Win11安装WSL2在非系统盘(非C盘)+图形化界面

    2024-07-11 06:06:05       24 阅读
  5. c语言指针

    2024-07-11 06:06:05       20 阅读
  6. Mojo模板引擎:释放Web开发的无限潜能

    2024-07-11 06:06:05       19 阅读
  7. ffmpeg 文档 - 未完

    2024-07-11 06:06:05       20 阅读