当前位置: 首页 > 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.lryc.cn/news/617328.html

相关文章:

  • DDIA第五章:分布式数据复制中的一致性与冲突处理
  • 第5节 大模型分布式推理通信优化与硬件协同
  • 在Debian上安装MySQL
  • Excel 实战:基因表达矩阵前处理中测序符号的快速剥离方法
  • golang 基础案例_02
  • 设计模式笔记_结构型_享元模式
  • 深入解析Prompt缓存机制:原理、优化与最佳实践
  • Agent在供应链管理中的应用:库存优化与需求预测
  • Python FastAPI + React + Nginx 阿里云WINDOWS ECS部署实战:从标准流程到踩坑解决全记录
  • typecho博客设置浏览器标签页图标icon
  • 【工控】线扫相机小结 第六篇
  • uncalled4
  • 麒麟系统使用-PATH设置
  • 【接口自动化】-7- 热加载和日志封装
  • 实战:用 PyTorch 复现一个 3 层全连接网络,训练 MNIST,达到 95%+ 准确率
  • 软件测试关于搜索方面的测试用例
  • DeepCompare文件深度对比软件:权限管理与安全功能全面解析
  • Android Audio实战——获取活跃音频类型(十五)
  • 安全合规4--下一代防火墙组网
  • 企业内外网物理隔离时文件怎么传输更安全
  • ChatML vs Harmony:深度解析OpenAI全新对话结构格式的变化
  • Linux 流编辑器 sed 详解
  • C#使用EPPlus读写Excel
  • Elasticsearch Node.js 客户端的安装
  • 【Node.js从 0 到 1:入门实战与项目驱动】1.3 Node.js 的应用场景(附案例与代码实现)
  • Flutter Dialog、BottomSheet
  • RabbitMQ 消息转换器详解
  • windows上RabbitMQ 启动时报错:发生系统错误 1067。 进程意外终止。
  • 内存问题排查工具ASan初探
  • 嵌入式Linnux学习 -- 软件编程2