numpy绘制随机数直方图
时间: 2023-06-22 19:26:45 浏览: 87
可以使用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`,因此每次运行时生成的随机数是相同的,可以得到相同的直方图和正态分布曲线。如果不设置随机数种子,则每次运行时生成的随机数将不同,因此绘制出的直方图和正态分布曲线也会不同。
matplotlib绘制直方图
Matplotlib是Python中最流行的可视化库之一,用于创建各种图形,包括直方图。下面是绘制直方图的步骤:
1. 导入Matplotlib库:在Python代码中导入Matplotlib库。
```python
import matplotlib.pyplot as plt
```
2. 准备数据:准备要绘制直方图的数据。可以使用NumPy库生成数据或从其他数据源读取数据。
```python
import numpy as np
data = np.random.normal(0, 1, 1000) # 生成1000个正态分布的随机数
```
3. 绘制直方图:使用Matplotlib的hist()函数绘制直方图。
```python
plt.hist(data, bins=20) # 绘制直方图,bins参数指定直方图的组数
```
4. 添加标题和标签:添加标题和标签以更好地呈现数据。
```python
plt.title('Histogram of Random Data')
plt.xlabel('Value')
plt.ylabel('Frequency')
```
5. 显示图形:使用Matplotlib的show()函数显示图形。
```python
plt.show()
```
完整代码:
```python
import matplotlib.pyplot as plt
import numpy as np
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins=20)
plt.title('Histogram of Random Data')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()
```
绘制出的直方图如下所示:
![histogram](https://img-blog.csdnimg.cn/20210901135401754.png)