🎯 今日目標
- 整合數據分析與可視化結果生成結構化報告
- 用代碼自動生成完整的圖文分析文檔
- 熟悉
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 osdf = 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 自動生成圖文報告
- 為后續的數據分析、匯報、面試作品集積累材料