目录
需求
效果
数据分析绘图示例
代码解释
运行结果
需求
分析一个班级中学生成绩分布,并绘图
效果
数据分析绘图示例
import matplotlib.pyplot as plt
import numpy as np
# 假设的学生成绩数据
np.random.seed(0) # 设置随机种子以确保结果可复现
scores = np.random.normal(loc=75, scale=15, size=100) # 生成100个正态分布的成绩,平均分为75,标准差为15
# 绘制直方图
plt.figure(figsize=(12, 6))
# 直方图
plt.subplot(1, 2, 1)
plt.hist(scores, bins=10, edgecolor='black', alpha=0.7)
plt.title('学生成绩分布直方图')
plt.xlabel('成绩')
plt.ylabel('学生人数')
plt.grid(True)
# 箱线图
plt.subplot(1, 2, 2)
plt.boxplot(scores, vert=False, patch_artist=True)
plt.title('学生成绩分布箱线图')
plt.xlabel('成绩')
plt.grid(True)
# 显示图表
plt.tight_layout()
plt.show()
代码解释
-
数据生成:
- 使用
numpy
生成假设的学生成绩数据。这里我们假设成绩服从正态分布,平均分为75,标准差为15,生成100个数据点。 -
np.random.seed(0)
设置随机种子以确保每次运行结果一致。
- 使用
-
绘制直方图:
- 使用
plt.hist
绘制直方图,bins=10
表示将成绩分成10个区间,edgecolor='black'
设置直方图边缘颜色,alpha=0.7
设置透明度。 - 添加标题、标签和网格线,以便图表更易读。
- 使用
-
绘制箱线图:
- 使用
plt.boxplot
绘制箱线图,vert=False
表示水平方向绘制,patch_artist=True
表示填充箱体颜色。 - 添加标题、标签和网格线,以便图表更易读。
- 使用
-
显示图表:
- 使用
plt.tight_layout()
自动调整子图布局,避免重叠。 - 使用
plt.show()
显示图表。
- 使用
运行结果
运行上述代码后,你将看到两个图表:
- 直方图:展示了学生成绩的分布情况,可以看到各个分数段的学生人数。
- 箱线图:展示了学生成绩的五数概括(最小值、第一四分位数、中位数、第三四分位数、最大值),并显示异常值。