python生成正态分布图,图上显示样本均差,标准差,以及最大值卡线和最小值卡线
时间: 2024-09-23 17:05:23 浏览: 44
在Python中,可以使用matplotlib库来绘制正态分布图,并通过numpy库计算统计信息如平均值(均值)、标准差等。为了添加样本均差、标准差以及最大值和最小值的上下限线(卡线),我们可以按照以下步骤操作:
首先,安装必要的库:
```bash
pip install matplotlib numpy
```
然后,你可以编写如下的代码示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 设置随机种子以获得可复现的结果
np.random.seed(0)
# 生成固定大小的正态分布数据
mean = 0
std_dev = 1
size = 1000
data = np.random.normal(mean, std_dev, size)
# 计算均值、标准差、样本均差(通常用标准误表示)和最大/最小值
mean_value = data.mean()
std_dev_value = data.std()
sample_std_err = data.std() / np.sqrt(size)
min_value = data.min()
max_value = data.max()
# 绘制正态分布曲线
plt.hist(data, bins='auto', alpha=0.6, density=True, color='g')
plt.title('正态分布示意图')
# 添加均值和标准差标签
plt.axvline(x=mean_value, color='r', linestyle='-', label=f"均值 ({mean_value:.2f})")
plt.axvline(x=mean_value + std_dev_value, color='b', linestyle=':', label=f"均值+标准差 ({mean_value + std_dev_value:.2f})")
plt.axvline(x=mean_value - std_dev_value, color='b', linestyle=':', label=f"均值-标准差 ({mean_value - std_dev_value:.2f})")
# 添加样本均差和最大/最小值的卡线
plt.axhline(y=sample_std_err, xmin=0, xmax=max_value/data.max(), color='orange', linestyle='-.', label=f"样本均差 ({sample_std_err:.2f})")
plt.axhline(y=1, xmin=min_value/data.min(), xmax=1, color='magenta', linestyle='--', label="最小值卡线 (1)")
plt.axhline(y=1, xmin=0, xmax=(mean_value + std_dev_value)/mean_value, color='magenta', linestyle='--', label="最大值卡线 (1)")
# 设置图例和其他属性
plt.legend(loc='best')
plt.ylabel("频率密度")
plt.xlabel("数值")
# 显示图形
plt.show()
阅读全文