一、项目概述

        这是一个基于Streamlit构建的交互式行业财务数据分析仪表板,用于可视化分析申万行业分类下各公司的营业收入和营业利润情况。

二、技术栈

  • 前端框架:Streamlit

  • 数据处理:Pandas, NumPy

  • 数据可视化:Matplotlib, Seaborn

  • 数据格式:Excel (.xlsx)

三、适用领域

  • 应用场景

  1. 行业研究:分析师快速了解行业趋势

  2. 投资决策:投资者识别高增长行业

  3. 学术研究:研究人员获取行业数据洞察

四、数据集准备

五、模块逻辑

5.1 页面配置

  • page_title: 设置页面标题为"行业应收&利润可视化分析",明确告知用户应用的主题和功能

  • layout='wide': 使用宽屏布局,更适合展示数据表格和图表,充分利用屏幕空间

5.2 程序运行框架                         
├── st.set_page_config()           # 页面初始化
├── load_data() 定义               # 函数定义(不执行)
├── 侧边栏渲染                     # 创建用户输入控件
└── 条件执行块 (if level and cla:)
    ├── load_data() 调用           # 实际加载数据
    │   ├── pd.read_excel()       # 读取行业数据
    │   ├── for循环读取年度数据    # 读取2018-2024数据
    │   ├── pd.concat()           # 合并年度数据
    │   └── pd.merge()            # 合并行业与财务数据
    ├── 数据聚合处理
    │   ├── groupby().agg()       # 按行业和年度聚合
    │   ├── pct_change()          # 计算同比增长
    │   └── sort_values()         # 数据排序
    ├── 显示数据表格
    │   └── st.dataframe()        # 渲染交互式表格
    └── 生成可视化图表
        ├── plt.subplots()        # 创建图表框架
        ├── for循环绘制6个子图    # 每年一个图表
        │   ├── nlargest()        # 筛选Top8行业
        │   ├── sns.barplot()     # 绘制柱状图
        │   └── 设置图表属性       # 标题、标签等
        └── st.pyplot()           # 渲染图表到页面

5.3 侧边栏设计

  • 使用 with 语句创建容器作用域

  • 所有在 with 块内的组件自动布局到侧边栏

六、模块分析

6.1 行业营业收入可视化分析

  • 股票代码标准化:复杂的正则表达式处理

  • 年度标记:每个数据框添加df['年度'] = year

  • 批量年度数据:2018-2024连续7年数据循环加载

  • 多文件合并:使用列表+循环+concat模式

6.2 近六年来 营业收入 增长率最大的八个行业数据可视化

  • Top8筛选逻辑nlargest(8, cla + '增长率') 获取前8

  • 排序展示sort_values(..., ascending=False) 降序排列

  • 扁平化处理axes.flatten()简化循环访问

七、界面介绍

1. 界面概述

       这是一个Streamlit构建的行业财务分析仪表板,特点包括:侧边栏双选择控件驱动交互,加载申万行业与多年财务Excel数据,自动标准化股票代码并计算同比增长率。界面展示近六年数据表格和增长率Top8可视化子图,采用Seaborn绘制排序柱状图。设计简洁,响应迅速,适合行业趋势分析和投资决策支持。

2. 信息设计特点

  • 横向比较:不同行业间对比

  • 纵向趋势:同一行业年度变化

  • 增长率分析:增长动力识别

  • 上市公司数量:反映行业代表性

  • 增长率正负:判断行业景气度

  • 趋势连续性:识别稳定增长行业

八、设计总结

本项目基于Streamlit构建了一个交互式行业财务分析仪表板,通过整合申万行业分类与多年度财务数据(2018-2024),实现了对行业营业收入和营业利润的动态可视化。核心功能包括:

  1. 交互式筛选:侧边栏支持用户选择行业层级(一/二/三级)和分析指标;

  2. 数据聚合与计算:自动按行业和年度聚合数据,并计算同比增长率;

  3. 多维展示:以表格呈现行业概况,并绘制近六年增长率Top8的条形图矩阵;

  4. 性能优化:采用延迟加载和缓存机制提升响应速度。

心得:

  1. 模块化设计提升可维护性:将数据加载、处理、可视化分离,便于后续扩展;

  2. 交互体验关键:通过Streamlit组件实现低代码交互,降低用户使用门槛;

  3. 可视化需兼顾信息密度与清晰度:采用多子图并列展示时序趋势,避免单图过载;

  4. 数据质量是基石:合并过程需规范代码格式与缺失值处理,确保分析准确性。
    未来可扩展异常值预警、行业对比等功能,进一步深化分析维度。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐