- font.family: sans-serif
- font.sans-serif: <span style="color: rgb(6, 125, 23); background-color: rgb(255, 255, 255); font-family: "JetBrains Mono", monospace; font-size: 9.8pt;">Noto Sans TC</span>, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
- axes.unicode_minus: False # 解决负号'-'显示为方块的问题
-
複製代碼- font.family : sans-serif
- # 去掉前面的#
- font.sans-serif : <span style="color: rgb(6, 125, 23); background-color: rgb(255, 255, 255); font-family: "JetBrains Mono", monospace; font-size: 9.8pt;">Noto Sans TC</span>, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
- # 去掉前面的#,并在冒号后面添加SimHei
- axes.unicode_minus : False
- # 去掉前面的#,并将True改为False
複製代碼
D:\Users\P34Kv5\PycharmProjects\pythonProject\venv\Lib\site-packages\matplotlib\mpl-data\matplotlibrc
前两项大概在 270 行,第三项大概在 411行。
但是改了配置之后并不会生效,需要重新加载字体,在 Python 中运行如下代码即可:
Matplotlib / Pandas 中文選用: NotoSansTC-Bold.ttf
思源黑體 Noto Sans TC 繁體中文官方下載 (rmb 安裝 至c:/Windows/Fonts/ 檔案名稱為 Noto Sans TC' ) noto-cjk/Sans at main · notofonts/noto-cjk (github.com)
step1:將字體放到matplotlib的字體套件資料夾- import matplotlib
- print(matplotlib.__file__)
複製代碼 可以先載入套件,並使用__file__來找出安裝的位置在哪。接著打開剛剛下載的字體壓縮檔(NotoSansTC-Bold.ttf), 丟到matplotlib\mpl-data\fonts\ttf即可。
(my case is D:\Users\P34Kv5\PycharmProjects\pythonProject\venv\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\NotoSansTC-Bold.ttf)
step2:到\.matplotlib 刪除所有快取檔案
matplotlib套件會在你第一次import時,將所有的快取設定存取在\.matplotlib資料夾中(通常位置在C:\Users\你電腦的名字\.matplotlib),裡面包含了可以使用字體的fontlist-v330.json檔案,需要將其刪除,並重新import matplotlib,才會重新搜尋到剛剛放進去的字體。
step3:重新import matplotlib,並查看fontlist-v330.json檔案
打開fontlist-v330.json,確認剛剛放進去的字體有沒有被記錄了,接著找出這個字體在JSON裡記錄的名稱。先確認NotoSansTC-Bold.ttf已經被記錄了,再往下搜尋找到”name”: “Noto Sans TC-Bold ”。(這邊是使用Notepad++來直接開啟JSON檔案)
step4:Python 實戰 無效
- # 修復負號顯示問題
- plt.rcParams['axes.unicode_minus'] = False
複製代碼 step4:Python 實戰 有效- plt.rcParams['font.family'] = 'sans-serif'
- plt.rcParams['font.sans-serif'] = 'Noto Sans TC'
複製代碼 D:\Users\P34Kv5\PycharmProjects\pythonProject\venv\Lib\site-packages\matplotlib\mpl-data\matplotlibrc 修改(line 271/411)
- font.family : sans-serif
- # 去掉前面的#
- font.sans-serif : Noto Sans TC, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
- # 去掉前面的#,并在冒号后面添加SimHei
- axes.unicode_minus : False
- # 去掉前面的#,并将True改为False
複製代碼
|