用 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?對不同指標進行歸一化
如何組合多圖,生成一份完整的可視化分析報告