import matplotlib.pyplot as plt

# 设置中文字体（避免中文乱码）
plt.rcParams['font.sans-serif'] = ['SimHei']  # Windows
# plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']  # macOS 可尝试这个
plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号

# 示例数据：考试名称和对应成绩
exams = ['第一次月考', '第二次月考', '期中考试', '第三次月考', '期末考试']
scores = [85, 88, 92, 87, 94]

# 绘制折线图
plt.figure(figsize=(10, 6))
plt.plot(exams, scores, marker='o', linestyle='-', color='b', linewidth=2, markersize=8)

# 添加标题和标签
plt.title('学生成绩走势图', fontsize=16)
plt.xlabel('考试阶段', fontsize=12)
plt.ylabel('成绩（分）', fontsize=12)

# 显示网格
plt.grid(True, linestyle='--', alpha=0.6)

# 在每个数据点上显示具体分数
for i, score in enumerate(scores):
    plt.text(exams[i], score + 1, str(score), ha='center', fontsize=10)

# 调整布局并显示图像
plt.tight_layout()
plt.show()