numpy绘制随机数直方图
时间: 2023-06-22 22:26:45 浏览: 256
可以使用numpy中的histogram函数和matplotlib中的plot函数来绘制随机数的直方图。下面是一个简单的例子:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成1000个随机数
data = np.random.randn(1000)
# 设置直方图的参数
bins = np.linspace(-5, 5, 50)
# 绘制直方图
plt.hist(data, bins=bins, alpha=0.5)
# 添加标题和标签
plt.title('Random number histogram')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图像
plt.show()
```
这段代码会生成一个包含1000个随机数的数据集,并使用np.linspace函数生成50个等距的区间,然后用plt.hist函数绘制直方图。最后,添加标题和标签,并使用plt.show函数显示图像。
相关问题
numpy绘制随机数直方图如果要让 scipy.stats 每次产生相同的随机数,如何处理
要让 `scipy.stats` 每次产生相同的随机数,需要在每次生成随机数前设置随机数种子(seed),可以使用 `numpy.random.seed()` 方法来设置随机数种子。
下面是一个使用 `numpy` 和 `scipy.stats` 绘制随机数直方图的例子,其中将种子设置为 `1`,以保证每次运行时生成相同的随机数:
```python
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
np.random.seed(1) # 设置随机数种子
# 生成随机数
x = norm.rvs(size=1000)
# 绘制直方图
plt.hist(x, bins=30, density=True, alpha=0.6, color='g')
# 绘制正态分布曲线
x_range = np.linspace(-4, 4, 100)
plt.plot(x_range, norm.pdf(x_range), 'r-', lw=2)
plt.show()
```
在上述代码中,设置了随机数种子为 `1`,因此每次运行时生成的随机数是相同的,可以得到相同的直方图和正态分布曲线。如果不设置随机数种子,则每次运行时生成的随机数将不同,因此绘制出的直方图和正态分布曲线也会不同。
通过numpy随机数绘制正态分布图
在Python中,我们可以使用NumPy库来生成正态分布的随机数,并结合Matplotlib库来绘制图表。以下是一个简单的步骤:
首先,你需要安装这两个库,如果尚未安装,可以使用pip安装:
```bash
pip install numpy matplotlib
```
然后,你可以使用NumPy的`normal()`函数生成正态分布的数据,它接受均值(mean)、标准差(std-dev)以及需要生成的数量作为参数。例如,生成平均数为0,标准差为1的一组数据:
```python
import numpy as np
mean = 0
std_dev = 1
size = 1000 # 生成1000个随机样本
random_numbers = np.random.normal(mean, std_dev, size)
```
接着,使用Matplotlib的`hist()`函数绘制直方图:
```python
import matplotlib.pyplot as plt
plt.hist(random_numbers, bins='auto', alpha=0.5, color='g') # 'auto'选择合适的bins
plt.title('Normal Distribution')
plt.xlabel('Value')
plt.ylabel('Frequency')
# 显示图形
plt.show()
```
这里,`alpha`调整透明度,`color`设置颜色,`hist()`函数会自动计算并显示频率分布。
阅读全文