用python用两种绘图方法展示数据是否是正态分布
时间: 2024-05-29 20:10:44 浏览: 15
方法一:直方图
我们可以使用matplotlib库中的hist()函数来绘制数据的直方图,通过观察直方图的形态来初步判断数据是否呈正态分布。
示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成一组随机数据
data = np.random.normal(0, 1, 1000)
# 绘制直方图
plt.hist(data, bins=30, density=True, alpha=0.5, color='b')
# 绘制正态分布曲线
mu, sigma = np.mean(data), np.std(data)
x = np.linspace(mu - 3*sigma, mu + 3*sigma, 100)
plt.plot(x, 1/(sigma * np.sqrt(2 * np.pi)) * np.exp( - (x - mu)**2 / (2 * sigma**2)), color='r', linewidth=2)
plt.show()
```
运行结果:
![histogram](https://img-blog.csdnimg.cn/20220228162302061.png)
从直方图中可以大致看出数据是否呈现正态分布。如果数据分布在均值两侧对称,呈钟形,那么就可以初步判断为正态分布。
方法二:Q-Q图
Q-Q图是一种用于检验数据是否符合某种分布的图形方法,它的基本思想是将待检验数据的分位数与标准正态分布的分位数进行比较,如果两者的分布形态相似,则可以认为待检验数据的分布与标准正态分布相近。
在Python中,我们可以使用statsmodels库中的qqplot()函数来绘制Q-Q图。
示例代码:
```python
import statsmodels.api as sm
import numpy as np
# 生成一组随机数据
data = np.random.normal(0, 1, 1000)
# 绘制Q-Q图
sm.qqplot(data, line='s')
plt.show()
```
运行结果:
![qqplot](https://img-blog.csdnimg.cn/20220228162351621.png)
如果数据点分布在对角线附近,则可以认为数据符合正态分布。如果数据点分布偏离对角线,说明数据分布与正态分布不符。