当前位置: 首页 > news >正文

用 Python 绘制企业年度财务可视化报告 —— 从 Excel 到 9 种图表全覆盖

用 Python 绘制企业年度财务可视化报告 —— 从 Excel 到 9 种图表全覆盖

在企业经营分析中,光看一堆财务数字很难直观发现规律和问题。 如果能将这些数据转化为可视化图表,不仅更美观,还能帮助管理层快速做出决策。

今天,我就用 Python + Pandas + Matplotlib,从一份 Excel 财务数据出发,生成一个包含 9 种图表 的年度财务可视化报告。


1. 数据准备

已经有一份 企业财务数据.xlsx,里面的 “财务数据” 工作表包含如下列:

  • 月份

  • 收入

  • 总成本

  • 利润

  • 销售数量

  • 可变成本

  • 固定成本

  • 利润率(%)

图片

用 Pandas 读取文件并做基础检查:

import pandas as pdfile_path = '企业财务数据.xlsx'
df = pd.read_excel(file_path, sheet_name='财务数据')required_cols = ['月份', '收入', '总成本', '利润', '销售数量', '可变成本', '固定成本', '利润率(%)']
if not all(col in df.columns for col in required_cols):print("Excel 缺少必要列!")exit()

2. 图表总览

我一次性生成 3x3 布局的 9 个子图,涵盖柱形图、折线图、雷达图、气泡图等多种形式。

图片

下面按顺序介绍每张图的用途和实现方法。


① 柱形图:每月利润

直观展示全年每个月的利润变化趋势。

图片

ax1.bar(df['月份'], df['利润'], color='skyblue', alpha=0.8)

② 对比柱形图:收入 vs 总成本

用并列柱形对比每个月的收入和总成本,方便查看盈亏情况。

图片

ax2.bar(x, df['收入'], width, label='收入')
ax2.bar(x + width, df['总成本'], width, label='总成本')

③ 分组柱形图:收入、可变成本、固定成本

进一步拆分成本构成,比较三项数据。

图片

ax3.bar(x - width, df['收入'], width, label='收入')
ax3.bar(x, df['可变成本'], width, label='可变成本')
ax3.bar(x + width, df['固定成本'], width, label='固定成本')

④ 堆积柱形图:总成本构成

用堆积方式将可变成本和固定成本叠加,直观看到成本比例。

图片

ax4.bar(df['月份'], df['可变成本'])
ax4.bar(df['月份'], df['固定成本'], bottom=df['可变成本'])

⑤ 分区折线图:利润与利润率

双 Y 轴折线图,一边显示利润走势,一边显示利润率。

图片

ax5.plot(df['月份'], df['利润'], marker='o')
ax6.plot(df['月份'], df['利润率(%)'], linestyle='--')

⑥ 雷达图:四个季度关键指标对比

将收入、总成本、利润、销量这四个指标按季度进行归一化对比。

图片

from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
q_normalized = scaler.fit_transform(q_data)

⑦ 聚合气泡图:销量 vs 收入

气泡大小代表利润,颜色代表利润率,多维度综合展示业务情况。

图片

scatter = ax8.scatter(df['销售数量'], df['收入'],s=df['利润']/100,c=df['利润率(%)'], cmap='coolwarm')

⑧ 玫瑰图(南丁格尔图):各月利润分布

用极坐标形式绘制每个月利润的分布情况,视觉效果独特。

图片

ax9 = fig.add_subplot(3, 3, 8, projection='polar')
ax9.bar(angles, df['利润'], width=0.5)

⑨ 文本框总结

直接在图中用文本列出年度关键财务指标总结。

图片

summary_text = f"""
📊 年度财务总结
总收入: {df['收入'].sum():,} 元
总成本: {df['总成本'].sum():,} 元
总利润: {df['利润'].sum():,} 元
平均利润率: {df['利润率(%)'].mean():.2f}%
"""
ax10.text(0.5, 0.5, summary_text, ha='center', va='center')

3. 最终效果

运行脚本后,你将得到一张包含 9 种可视化图表 的财务报告:

  • 从整体到细节

  • 从单一维度到多维对比

  • 既有数据可读性,又有展示美感

这份图表不仅能用于内部财务分析,还可以直接嵌入到年终报告 PPT 里,省时省力。


4. 知识点总结

通过这次实战,你可以学到:

  • Pandas 用于读取和处理 Excel 数据

  • Matplotlib 绘制多种类型图表

  • MinMaxScaler 对不同指标进行归一化

  • 如何组合多图,生成一份完整的可视化分析报告

http://www.dtcms.com/a/325388.html

相关文章:

  • nvm安装详细教程(卸载旧的nodejs,安装nvm、node、npm、cnpm、yarn及环境变量配置)
  • 论文中PDF的公式如何提取-公式提取
  • Lightroom 安卓版 + Windows 版 + Mac 版全适配,编辑管理一站式,专业摄影后期教程
  • 【实用案例】录音分片上传的核心逻辑和实现案例【文章附有代码】
  • 智能双行框!百度全量上线AI搜索,是革新浪潮还是昙花一现?
  • 场外个股期权交易系统全球解决方案:监管协同与流动性创新——基于香港LEAP框架与多级清算体系的实践验证
  • 腾讯 iOA 测评 | 横向移动检测、病毒查杀、外设管控、部署性能
  • 智能合约执行引擎在Hyperchain中的作用
  • 飞算 JavaAI 智能进阶:从技术工具到金融科技开发范式的革新
  • 能力评估:如何系统评估你的技能和经验
  • “人工智能 +”新政即将出台,哪些领域将迎来发展风口?
  • 论文学习22:UNETR: Transformers for 3D Medical Image Segmentation
  • IDE认知革命:JetBrains AI Assistant插件深度调教手册(终极实战指南)
  • @ContextConfiguration
  • Java基础结课题-统计双色球中奖数
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘lightgbm’问题
  • yolo目标检测技术之yolo1到yolo5(二)
  • Profile.vue组件详细解析
  • 缓存的三大问题分析与解决
  • 【运维进阶】WEB 服务器
  • Linux epoll:高并发网络编程的终极武器
  • Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin
  • 自动化UI测试工具TestComplete的多语言引擎与内置实践
  • LabVIEW声波测井信号处理系统
  • 【前沿技术动态】【AI总结】时隔六年!OpenAI 8 月 5 日「开放权重」回归,GPT-OSS 双模型能否重塑开源格局?
  • 小项目方的“活跃术”:市值管理 + 批量交易 + 新地址买入指南
  • [4.2-1] NCCL新版本的register如何实现的?
  • ESP32将DHT11温湿度传感器采集的数据上传到XAMPP的MySQL数据库
  • 【JavaEE】(12) 创建一个 Sring Boot 项目
  • 如何在直播APP中集成美颜SDK?美白滤镜功能开发全流程解析