🎯 今日目标
- 整合数据分析与可视化结果生成结构化报告
- 用代码自动生成完整的图文分析文档
- 熟悉
Jupyter Notebook
/Markdown
+图表
报告生成流程
🧩 一、项目背景:学生成绩分析报告
数据来源:
students_cleaned.csv
(含姓名、性别、成绩、是否及格)
你将完成一份“学生成绩可视化分析报告”,报告内容包含数据概况、成绩分布、性别对比、可视化图表嵌入与结论总结。
📄 整合报告结构(可导出为 Markdown 或 HTML)
1. 报告标题
# 学生成绩数据分析与可视化报告
2. 数据概况(总人数、平均分、及格率等)
print(df.describe())
print("总人数:", len(df))
print("及格人数:", df["是否及格"].sum())
print("及格率:", df["是否及格"].mean())
3. 数据可视化部分(嵌入图片)
## 3.1 学生成绩趋势折线图

## 3.2 学生成绩柱状图

## 3.3 性别平均成绩柱状图

## 3.4 成绩分布图

## 3.5 成绩箱线图

4. 分析要点总结
- 总体成绩均值为 **X.X 分**,及格率为 **XX%**
- 男女生成绩平均分差异不大,女生略高/略低
- 少数学生存在异常低分(见箱线图)
- 成绩集中分布在 XX~XX 分之间
🧪 今日练习任务
✅ 编写脚本 generate_report.py
,自动生成 Markdown 格式的整合报告
import pandas as pd
import os
df = pd.read_csv("data/students_cleaned.csv")
# 统计概况
total = len(df)
avg_score = df["成绩"].mean()
pass_rate = df["是否及格"].mean() * 100
# Markdown 生成
report_md = f"""# 学生成绩数据分析与可视化报告
## 1. 数据概况
- 总人数:{total} 人
- 平均成绩:{avg_score:.2f} 分
- 及格率:{pass_rate:.1f}%
## 2. 成绩趋势图

## 3. 成绩柱状图

## 4. 性别平均成绩对比

## 5. 成绩分布直方图

## 6. 成绩箱线图(性别分组)

## 7. 分析结论
- 成绩总体呈 **X型分布**(待观察)
- 成绩最高为 {df['成绩'].max()} 分,最低为 {df['成绩'].min()} 分
- 性别之间成绩差异为 {df.groupby("性别")["成绩"].mean().diff().values[-1]:.2f} 分
- 建议关注低分段学生辅导情况
"""
# 保存为 Markdown 文件
output_path = "charts/学生成绩可视化报告.md"
with open(output_path, "w", encoding="utf-8") as f:
f.write(report_md)
print(f"✅ 分析报告已生成:{output_path}")
✅ 报告导出建议
.md
可通过 VS Code 预览或转为.html
、.pdf
若用 Jupyter Notebook,可直接输出富文本 + 图形
# 学生成绩数据分析与可视化报告 ## 1. 数据概况 - 总人数:4 人 - 平均成绩:75.75 分 - 及格率:50.0% ## 2. 成绩趋势图  ## 3. 成绩柱状图  ## 4. 性别平均成绩对比  ## 5. 成绩分布直方图  ## 6. 成绩箱线图(性别分组)  ## 7. 分析结论 - 成绩总体呈 **X型分布**(待观察) - 成绩最高为 88.0 分,最低为 59.0 分 - 性别之间成绩差异为 -4.50 分 - 建议关注低分段学生辅导情况
markdown输出效果:
🧾 今日总结
- 掌握了整合可视化图表与分析结果的报告结构
- 用 Markdown + Python 自动生成图文报告
- 为后续的数据分析、汇报、面试作品集积累材料