Python 数据分析与可视化 Day 6 - 可视化整合报告实战

发布于:2025-06-25 ⋅ 阅读:(15) ⋅ 点赞:(0)

🎯 今日目标

  • 整合数据分析与可视化结果生成结构化报告
  • 用代码自动生成完整的图文分析文档
  • 熟悉 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 学生成绩趋势折线图
![折线图](charts/成绩折线图.png)

## 3.2 学生成绩柱状图
![柱状图](charts/成绩柱状图.png)

## 3.3 性别平均成绩柱状图
![性别图](charts/性别平均成绩柱状图.png)

## 3.4 成绩分布图
![直方图](charts/成绩分布直方图.png)

## 3.5 成绩箱线图
![箱线图](charts/成绩箱线图_按性别.png)

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. 成绩趋势图
![折线图](./成绩折线图.png)

## 3. 成绩柱状图
![柱状图](./成绩柱状图.png)

## 4. 性别平均成绩对比
![性别图](./性别平均成绩柱状图.png)

## 5. 成绩分布直方图
![直方图](./成绩分布直方图.png)

## 6. 成绩箱线图(性别分组)
![箱线图](./成绩箱线图_按性别.png)

## 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. 成绩趋势图
    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=.%2F%E6%88%90%E7%BB%A9%E6%8A%98%E7%BA%BF%E5%9B%BE.png&pos_id=img-4Vu34itx-1750768214904)
    
    ## 3. 成绩柱状图
    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=.%2F%E6%88%90%E7%BB%A9%E6%9F%B1%E7%8A%B6%E5%9B%BE.png&pos_id=img-Dw8jv8s1-1750768214905)
    
    ## 4. 性别平均成绩对比
    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=.%2F%E6%80%A7%E5%88%AB%E5%B9%B3%E5%9D%87%E6%88%90%E7%BB%A9%E6%9F%B1%E7%8A%B6%E5%9B%BE.png&pos_id=img-LYFZNcT8-1750768214905)
    
    ## 5. 成绩分布直方图
    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=.%2F%E6%88%90%E7%BB%A9%E5%88%86%E5%B8%83%E7%9B%B4%E6%96%B9%E5%9B%BE.png&pos_id=img-i4dSMBFe-1750768214905)
    
    ## 6. 成绩箱线图(性别分组)
    ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=.%2F%E6%88%90%E7%BB%A9%E7%AE%B1%E7%BA%BF%E5%9B%BE_%E6%8C%89%E6%80%A7%E5%88%AB.png&pos_id=img-a0l6Vh2H-1750768214905)
    
    ## 7. 分析结论
    - 成绩总体呈 **X型分布**(待观察)
    - 成绩最高为 88.0 分,最低为 59.0 分
    - 性别之间成绩差异为 -4.50 分
    - 建议关注低分段学生辅导情况
    

    markdown输出效果:
    在这里插入图片描述


🧾 今日总结

  • 掌握了整合可视化图表与分析结果的报告结构
  • 用 Markdown + Python 自动生成图文报告
  • 为后续的数据分析、汇报、面试作品集积累材料