python中任意选取两个城市,并对两个城市的7个指标绘制两个正态分布检验图对数据的正态性进行直观检验
时间: 2024-02-13 22:00:11 浏览: 123
好的,假设您已经有了这两个城市的数据,我们可以使用Python中的Scipy和Matplotlib库来进行正态分布检验和可视化。
首先,我们需要导入相关库和数据:
```python
import numpy as np
import scipy.stats as stats
import matplotlib.pyplot as plt
# 两个城市的数据
city1_data = [1, 2, 3, 4, 5, 6, 7]
city2_data = [7, 6, 5, 4, 3, 2, 1]
```
接下来,我们可以使用Scipy库中的normaltest函数来进行正态分布检验。该函数返回两个值:统计量和p值。如果p值小于0.05,则我们可以拒绝原假设(即数据符合正态分布)。
```python
# 正态分布检验
statistic1, p_value1 = stats.normaltest(city1_data)
statistic2, p_value2 = stats.normaltest(city2_data)
print("City 1 normal test p-value:", p_value1)
print("City 2 normal test p-value:", p_value2)
```
我们可以看到p值都大于0.05,说明两个城市的数据都符合正态分布。
接下来,我们可以使用Matplotlib库来绘制正态分布图。我们可以使用numpy库中的linspace函数生成一些数据点,并使用Scipy库中的norm函数计算每个数据点的正态分布概率密度。
```python
# 绘制正态分布图
x1 = np.linspace(np.min(city1_data), np.max(city1_data), 100)
y1 = stats.norm.pdf(x1, np.mean(city1_data), np.std(city1_data))
x2 = np.linspace(np.min(city2_data), np.max(city2_data), 100)
y2 = stats.norm.pdf(x2, np.mean(city2_data), np.std(city2_data))
plt.plot(x1, y1, label='City 1')
plt.plot(x2, y2, label='City 2')
plt.legend()
plt.show()
```
运行上述代码后,我们可以看到绘制出了两个城市的正态分布图。如果两个城市的数据符合正态分布,那么曲线应该呈现出典型的钟形曲线。
阅读全文