python - Python 中 random.random 的概率密度函数图
问题描述
我是 python 的新手,我想生成相同的 PDF 绘图,如下所示:
这是我当前的实现版本,它不会产生相同的图:
import random
import matplotlib.pyplot as plt
plt.figure('PDF for random.random()')
plt.title('PDF for random.random()')
plt.plot(random.random())
plt.figure('PDF for random.random() + random.random()')
plt.title('PDF for random.random() + random.random()')
plt.plot(random.random() + random.random())
plt.figure('PDF for random.random() + random.random() + random.random()')
plt.title('PDF for random.random() + random.random() + random.random()')
plt.plot(random.random() + random.random() + random.random())
plt.show()
我哪里做错了?
解决方案
调用random.random()
一次只返回一个数字,您需要多次调用它才能获得足够好的基础分布样本。
您可以通过编写n
调用来创建一个列表。random.random
[random.random() for _ in range(n)]
试试这个代码:
import random
import matplotlib.pyplot as plt
sample_size = 10000
fig, (ax1, ax2, ax3) = plt.subplots(nrows=3)
ax1.hist([random.random() for _ in range(sample_size)])
ax1.set_title('PDF for random.random()')
ax2.hist([random.random() + random.random() for _ in range(sample_size)])
ax2.set_title('PDF for random.random() + random.random()')
ax3.hist([random.random() + random.random() + random.random() for _ in range(sample_size)])
ax3.set_title('PDF for random.random() + random.random() + random.random()')
plt.show()
输出图像:
推荐阅读
- powershell - 如何在 AD 中删除计算机并将已删除的计算机通过电子邮件发送给自己
- java - Spring WebClient 在使用 ExchangeFilterFunction 发送之前无法读取请求正文
- javascript - 如何将 vuex-persistentstate 与现有的商店(vuex)设置一起使用?
- c# - 如何避免强制终止以停止控制台应用程序?
- peewee - 在 Huey 中为周期性任务实现 context_task 的最佳方法是什么?
- multithreading - 如何从 std::async 线程中启动 std::async 线程,并在第二个启动后让第一个死掉?
- c# - 是什么导致了闪电质量的这种极端差异?
- pandas - 创建了多索引列的结构后,我无法将此模板适合数据框;这个怎么做?
- vb.net - 函数不会从文本正文中删除字符串
- file - 在 _blank 选项卡中打开 MultipartFile(Blob 存储)