為你的財務畫出流向-運用 ChatGPT共創出你的財務流向圖(Sankey Diagram)

你有定期盤點財務的習慣? 讓我們一起好好理財,過上更好的人生。 最近有些朋友詢問我,哪裡可以參加家庭理財課程。遺憾的是,李柏鋒老師的人生理財課程,無論是實體或線上課程,都正在進行改版籌備,暫時無法提供…

分享
為你的財務畫出流向-運用 ChatGPT共創出你的財務流向圖(Sankey Diagram)

你有定期盤點財務的習慣? 讓我們一起好好理財,過上更好的人生。

最近有些朋友詢問我,哪裡可以參加家庭理財課程。遺憾的是,李柏鋒老師的人生理財課程,無論是實體或線上課程,都正在進行改版籌備,暫時無法提供課程服務。

雖然如此,我們還是可以先做一些課前準備,也就是「記帳」。記帳至少有兩大好處:第一,如果你能記錄下一個月的支出,就能大致估算出家庭緊急準備金的需要量。第二,透過定期檢視資金流向,你可以看看是在飲食上花費比較多,還是在學習和投資自己上花費較多,以便調整你的財務策略。

Photo by micheile henderson on Unsplash 

我已經記帳超過4年,並且隨著雲端發票的普及,記帳不再容易被遺忘,數字也更貼近事實。我現在都用 Moze APP 來記帳,這是一款訂閱制的應用程式,持續根據使用者的需求,不斷會更新的一款記帳 APP。透過它,不僅可以記帳,還可以查看年度支出、月度支出等資訊,並提供許多動態圖表,使用非常便利。

然而,它通常只提供圓餅圖,我們只能看到某一個類別下的子項分布,無法全盤了解財務狀況。

那有哪一個圖形可以完美呈現財務的流向?

Sankey Diagram桑基圖-綜觀全局圖表

有的,那就是 Sankey Diagram 桑基圖,一種可以全面展現流向的圖表。它的源頭可追溯到1898年,愛爾蘭人Matthew Henry Phineas Riall Sankey在土木工程師學會會報中首度提出了這種能量流動圖,因此得名。在一個桑基圖愛好者的社區網站上,我們可以看到這麼一句話:

「A Sankey diagram says more than 1000 pie charts」

意謂著一張桑基圖的描述力超越了一千張餅圖,由此可見,桑基圖對於複雜數據的視覺化表現力非凡,它的功能和使用場景與餅圖有部分重合。

以Sankey Diagram桑基圖觀察飲食支出流向圖

雖然桑基圖看起來複雜,但實際上它的使用卻非常直觀且高效。每一個花費類別都是一個節點,流量則代表每筆花費支出的數量。透過觀察節點的長度比例,我們可以看出每一階段所佔的比例。現今的前端視覺化技術已十分成熟,我們可以通過動態點選,從大大小小的水管中找出每筆金額的貢獻。

從這張圖,我們可以輕易地看出我們的錢花在哪裡了?我們可以詳細看到金錢如何從大水管分流到各個小水管中,例如在飲食類別中,我們在市場上購買了多少原型食物,在超市買了多少食品,以及午餐與晚餐的花費。這些都可以從我們的花費中看出來。我在畫這張圖後,才驚覺我在飲料上的花費其實不少。

一步一步畫出你的財務流向圖

這篇文章示範如何透過與 ChatGPT 的互動,解決手邊的問題。我們會引導你一步步地完成 Python 程式碼,以應對這次的挑戰:如何利用 Python 將日常的記帳資料,轉化為一張半自動化的飲食花費流向圖。

我們將使用 Google Colab(Google 的雲端程式碼執行環境)來實現資料視覺化和製作桑基圖(Sankey Diagram),流程包含以下幾個步驟:

  1. 在 Google 雲端建立一個資料夾並將記帳的 CSV 檔案放入。
  2. 連接 Colab 到這份共享的 CSV 檔案資料集。
  3. 在 Google Colab 中設定中文字體。
  4. 與 ChatGPT 互動,清晰地說明需求,讓 ChatGPT 提供完整的程式碼。
  5. 利用 Plotly 來呈現消費支出流向的桑基圖。

接下來,讓我們詳細說明每一步:

Step1: 在 Google 雲端建立一個資料夾,並將記帳 CSV 放入。

如果你還未開始記帳,也不必擔心。你可以從這個 Github下載(google 雲端網址)下載我們提供的資料夾,然後將它放到你的 Google 雲端上。這個資料夾內包含了範例程式碼和範例資料檔案。下載後,如果你有自己的記帳 CSV,也請將其放入這個資料夾。

在範例程式碼中,你會看到以下 12 個欄位:

Step2: Colab 連結到共用的 CSV 檔案資料集。

首先,你需要調整程式碼的路徑。如果你已將資料下載並放置在你自己的 Google 雲端上,請按照以下的方式調整路徑:

os.chdir('/content/drive/MyDrive/用 ChatGPT 做資料分析')

接著,再調整你檔案的程式碼路徑,如下:

df = pd.read_csv('/content/drive/MyDrive/用 ChatGPT 做資料分析/飲食花費記帳資料.csv')

完成路徑調整後,你可以立即進行測試。點選「執行階段」,然後選擇「全部執行」。

點選「執行階段」,然後選擇「全部執行」。

下一步,系統會要求你授權此筆記本訪問你的 Google 雲端硬碟。請點擊「連接至 Google 雲端硬碟」按鈕,選擇你的 Google 帳號並點擊「允許」。

請點擊「連接至 Google 雲端硬碟」按鈕
連結你的 google 帳戶

Step3: 在 Google Colab 中進行中文字體設定。

由於我們的記帳記錄全都是以中文呈現,因此,我們必須確保中文字體的設定完善。由於 Python 的 matplotlib 是常用於數據分析和資料視覺化的模組,且其預設字體不支援中文,會導致中文顯示為一連串的符號。因此,我們需要先安裝中文字體。在此,我們選用開源且可商用的「台北黑體」(感謝翰字鑄造JT Foundry的設計與開源)[1]。

Step 4: 與 ChatGPT 互動並詳細說明你的需求,讓 ChatGPT 生成完整的程式碼。 然後,將程式碼貼入 Colab 進行測試。

請注意,截至 2023 年 6 月 12 日,ChatGPT 對於資料串接與複雜的系統架構的處理,所生成的程式碼可能並非百分之百準確。這就如同在機器學習的世界裡,在機率架構下發展出來的模型,仍有可能出現錯誤。而我們,作為接受過訓練的人,應該有能力辨識出錯誤的部分,或是將錯誤的信息反饋給 ChatGPT,讓它進行修正。ChatGPT 可說是程式初學者的良好學習助教。

Step 5:運用 Plotly 呈現消費支出流向 Sankey Diagram 桑基圖 。

Step 6: 告訴 ChatGPT 你的需求,調整顏色,更能看出不同類別下支出的流向。

透過上面的提問與 ChatGPT 的交叉提問,最終得到比較滿意的Sankey Diagram桑基圖。

小結: 我們不僅要管理工作中的數據,更要掌握自身的理財數據


身為職場工作者的我們,每日都在處理和解讀公司的數據,但我們似乎忽視了生活中另一組至關重要的數據:我們的收入和支出。我們不能只專注於職場上的數據,而忽視我們自己生活的數據。這是一篇文章也是一項新的嘗試,將專業知識運用到個人生活的每一個面向。


參考資料:

1.Day 11 : Google Colab 實用奧步篇 ( 連結硬碟、繪圖中文顯示問題 )

謝謝你看到最後,很推薦你實際用你的記帳結果,畫出你的財務流向圖。如果你對於這個網站或這篇文有任何想討論或分享的,歡迎來信到 :suipichen@gmail.com  跟我說,或在下方留言分享!

Read more