用python模拟二项分布并画图
时间: 2023-12-05 11:35:37 浏览: 173
Python绘制的二项分布概率图示例
以下是一个使用Python模拟二项分布并绘制直方图的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
def binomial(n, p, size=1):
"""Simulate a binomial distribution with parameters n and p."""
return np.random.binomial(n, p, size)
# Set parameters
n = 20 # Number of trials
p = 0.5 # Probability of success
# Simulate the distribution
samples = binomial(n, p, size=1000)
# Plot the histogram
plt.hist(samples, bins=np.arange(n+1)-0.5, density=True, alpha=0.5)
plt.xlabel('Number of successes')
plt.ylabel('Probability')
plt.title('Binomial distribution with n={}, p={}'.format(n, p))
plt.show()
```
在这个例子中,我们使用了numpy库中的`binomial`函数来模拟二项分布。参数`n`表示试验次数,`p`表示每次试验成功的概率。我们使用`size`参数来指定需要生成多少个样本,这里设置为1000个。
我们使用matplotlib库中的`hist`函数来绘制直方图。参数`bins`表示我们希望将数据分成多少个区间,这里我们选择将数据分成`n+1`个区间,即每个成功次数对应一个区间。参数`density`表示是否将直方图转化为概率密度图。参数`alpha`表示直方图的透明度。
最后,我们使用`xlabel`和`ylabel`函数来标注x轴和y轴的标签,使用`title`函数来添加图表的标题。最后使用`show`函数显示图表。
运行上述代码,将会得到一个类似下图的二项分布直方图:
![binomial_distribution.png](https://i.loli.net/2021/05/10/4D7nNcKzBx8VJWd.png)
阅读全文