Outline
- 前言
- 認識圖表專有名詞
- 解決中文字體空白方法
- 總結
前言
Matplotlib 和 Pandas 是兩個在資料科學專案中時常使用的兩個套件。Pandas 主要用於資料輸入輸出及資料分析操作,而 Matplotlib 主要是用來資料視覺化,呈現圖表使用,兩者可以單獨也可以搭配使用。在使用 Matplotlib 繪製圖表的中文使用者最常會遇到的問題就是中文字體在預設的 Matplotlib 顯示不出中文字體。接下來我們就透過範例程式一步步手把手帶領大家如何在 Matplotlib 顯示圖表的中文字體標籤和說明圖示(本文假設讀者對於 Python 程式語法、Pandas 和 Matplotlib 已有基本認識)。
認識圖表專有名詞
Matplotlib 中有一些專有名詞,若能掌握住將對我們接下來學習如何在 Matplotlib 使用中文字體會很有幫助。
(1) Figure: 代表整個面板
(2) Axes: 代表整個圖表
(3) Axis: 代表軸
(4) Legend: 代表圖示說明
(5) Label: 代表軸標頭
(6) Title: 代表圖表標頭

解決中文字體空白方法
解決中文字體空白或是顯示不出來的問題,主要解法有以下兩種:
- 在程式中引入支援中文的字體並於需要顯示的地方當作參數使用
- 透過本機端電腦參數設定和字體檔案放置到對應資料夾(可以不用每次在程式中指定字體,但第一次設定步驟較為繁瑣)
接下來本文會先透過一個範例優先介紹 在程式中引入支援中文的字體 這種作法。
範例程式
Step 1. 規劃目標並準備資料
目標:我們希望透過長條圖顯示桃園地區結婚對數,了解結婚分布狀況。
資料集使用政府開放資料中 108 年度桃園地區結婚對數資料集,我們下載 .csv 檔案後更改檔案名稱為: marriage.csv。檔案內容如下:
1 | 月份區域別,一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月 |
Step 2. 載入資料
1 | import pandas as pd |
接著要取出我們想要顯示圖表的資料:
1 | # loc 取值方式為 [索引, [欄位]],取 月份區域別 出來當作 index |
印出內容:
1 | 月份區域別 一月 |
並設定 dataframe index 為 月份區域別 當作 x 軸,因為原本 預設 index 為 0, 1, 2, ...
1 | # 原本 index 為 0, 1, 2, 3...12,改為 月份區域別,這樣 x 軸標籤就會改為 月份區域別 |
印出內容:
1 | 一月 |
Step 3. 繪製圖表
接著我們於程式最上方引入 matplotlib 套件並使用別名繪製長條圖:
1 | import matplotlib.pyplot as plt |
Step 4. 中文化
若使用自行設定字體若有中文字的地方都要給定字體才不會出現亂碼或空白(ex. title, label, legend 等),這邊我們使用 NotoSansCJK-Black(也可以自行選擇支援中文的字體)可以在 下載連結 下載使用並放入和程式同一個專案工作資料夾下。

1 | # 使用 FontProperties 建立字體屬性物件 |
其中特別需要注意是 xlabel 需要一一取出設定字體:
1 | # 使用 for 迴圈一一取出 x 軸標籤 label 設定字體,若 y 軸有中文字也是類似使用方式 get_yticklabels |
Step 5. 呈現成果
1 | # 顯示圖表 |
完整程式碼:
1 | import pandas as pd |
執行結果:

總結
- 前言
- 認識圖表專有名詞
- 解決中文字體空白方法
- 總結
以上透過範例介紹圖表的專有名詞及講解如何設定支援中文字體的物件,並讓 matplotlib 圖表可以顯示中文字體。相信讀者跟著操作可以快速解決 matplotlib 不能顯示中文字體的惱人問題。若有討論或是問題歡迎留言和我們一起交流學習喔!


