本项目是 FDU 2025 秋季《计算机可视化》课程的期末作业,围绕 2015–2017 年波士顿马拉松选手数据进行可视化分析与应用开发。 目前已完成大纲第 3、4 章的可视化分析,以及第 5 章 Streamlit 应用(配速策略师)。
dataset/marathon_results_2015.csv/marathon_results_2015.csvmarathon_results_2016.csv/marathon_results_2016.csvmarathon_results_2017.csv/marathon_results_2017.csvgpx_20250421_id10253_race1_20250406001335.gpx
analysis/ch03_macro_visualization.py宏观洞察(人口统计 + 地图)ch04_1_heatmap_pacedrop.py配速热力图 + 掉速分析ch04_2_geo_spatial_analysis.py赛道海拔 vs 配速(含地图子图)ch04_3_strategy _wall.py精英 vs 大众策略 + 撞墙指数
app/app.pyStreamlit 应用:Boston Pace Strategist
CSV 至少包含以下字段(与 Kaggle/Boston Marathon 公开数据格式一致):
Age,M/F,Official Time- 分段累计时间:
5K,10K,15K,20K,Half,25K,30K,35K,40K - 可选:
City,Country等
GPX 用于赛道海拔与地图,默认读取 dataset/ 下的任意 .gpx。
- Python 3.10+
- 依赖见
requirements.txt
安装依赖:
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt确保在项目根目录执行命令。
python .\analysis\ch03_macro_visualization.py访问:http://127.0.0.1:8050
4.1 配速热力图 + 掉速分析
python .\analysis\ch04_1_heatmap_pacedrop.py访问:http://127.0.0.1:8051
4.2 赛道海拔 vs 配速(右侧含赛道彩色地图)
python .\analysis\ch04_2_geo_spatial_analysis.py访问:http://127.0.0.1:8052
4.3 精英 vs 大众策略 + 撞墙指数
python ".\analysis\ch04_3_strategy _wall.py"访问:http://127.0.0.1:8053
streamlit run .\app\app.py访问:http://localhost:8501
- 地图底图使用 Carto/Mapbox 贴图服务,需要联网加载。
app/app.py会自动递归查找dataset/下的结果 CSV 与 GPX。- 若发现数据路径不匹配,请检查
dataset/目录结构与文件名。