基于 Streamlit 的金融数据可视化
·
一、项目概述
1.1
本项目基于Python,Streamlit开发的一款轻量化、高交互性的股票行业分析系统,重点实现市场总览、申万行业分类分析及国防军工行业深度量化分析功能。
1.2项目目标:
构建可视化交互界面、支持市场核心指数(沪深300、上证A股、深证A股)走势展示与日期区间筛选;实现申万一级行业财务数据(营业收入、营业利润)统计分析与增长率可视化;针对国防军工行业,完成指数走势、个股表现、PCA综合评价及收益率对比分析;设计量化投资策略,结合技术指标与机器学习模型预测股票涨跌趋势,提供投资决策参考。
二、系统构建
2.1 数据加载模块
- 使用
pd.read_excel加载申万行业分类数据 - 实现日期范围选择功能(2022-2025年)
- 包含通用指数数据加载函数
load_index_data,支持日期格
2.2 可视化模块:Matplotlip
- 配置Matplotlib中文字体显示
- 展示子图(如沪深300复权交易指数走势图)
2.3 交互设计:Streamlit
- 侧边栏行业选择下拉菜单
- 日期筛选
- 结果展示
2.4 数据集

三、核心模块
3.1 环境配置与核心配置

3.2 主函数 st_fig()

3.3 市场总览模块

3.3.1 指数数据读取函数 load_index_data()

3.3.2 行业数据加载函数 load_industry_data()

3.4 国防军工行业分析模块
3.4.1 基础数据读取函数 st_data()

3.4.2 PCA分析函数 Fr()

3.4.3 收益率计算函数 calculate_hs300_return()

3.4.4 复权数据读取函数 read_real_hfq_data()

四、技术亮点
4.1 交互式可视化设计
- 多子图布局:采用 1×3、3×2 等多种子图布局,提升数据展示效率
- 专业配色:使用金融行业常用的配色方案,增强视觉体验
- 动态交互:通过日期选择器、下拉框等组件实现数据的动态筛选
4.2 数据处理最佳实践
- 缓存机制:使用
@st.cache_data减少重复数据加载 - 异常处理:全覆盖的 try-except 块,保证程序健壮性
- 数据标准化:使用 StandardScaler 消除量纲影响
- 缺失值处理:合理的缺失值过滤和填充策略
4.3 量化分析模块
- PCA 综合评价:基于主成分分析的股票综合评分模型
- 收益率计算:支持复权数据的收益率计算
- 量化策略回测:实现简单的量化投资策略设计与回测
- 技术指标计算:包含 MA、MACD、KDJ 等经典技术指标
五、页面展示




六、总结
该项目展示了如何使用 Streamlit 构建专业的金融数据分析系统,通过模块化的函数设计、完善的异常处理、专业的数据可视化,实现了从数据加载、清洗、分析到可视化的全流程。特别是针对国防军工行业的深度分析,结合了 PCA 降维、收益率计算、量化策略等量化分析技术,为金融数据分析提供了完整的解决方案。
项目的代码结构清晰,函数职责明确,是学习金融数据分析和 Streamlit 开发的优秀案例。通过对代码的深入理解和扩展,可以构建更加强大的金融分析系统。
七、视频
2
更多推荐
所有评论(0)