「matplotlib字體」的推薦目錄:
- 關於matplotlib字體 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於matplotlib字體 在 大象中醫 Youtube 的最佳解答
- 關於matplotlib字體 在 大象中醫 Youtube 的最讚貼文
- 關於matplotlib字體 在 Re: [問題] matplotlib顯示中文的問題- 看板Python - 批踢踢實業坊 的評價
- 關於matplotlib字體 在 HappyCoder 自學程式設計學院, profile picture - Facebook 的評價
- 關於matplotlib字體 在 Matplotlib字体设置 - Xiaofei's Blog 的評價
- 關於matplotlib字體 在 matplotlib 能用的中文字体 - gists · GitHub 的評價
- 關於matplotlib字體 在 請教Colab Matplotlib 中文字體- 前端工程師板 - Dcard 的評價
- 關於matplotlib字體 在 How to change the font size on a matplotlib plot - Stack Overflow 的評價
- 關於matplotlib字體 在 FONT PROPERTIES ON TITLE AND LABELS IN MATPLOTLIB 的評價
matplotlib字體 在 大象中醫 Youtube 的最佳解答
matplotlib字體 在 大象中醫 Youtube 的最讚貼文
matplotlib字體 在 HappyCoder 自學程式設計學院, profile picture - Facebook 的推薦與評價
Matplotlib / Pandas 資料分析繪圖顯示中文字體入門教學Matplotlib 和Pandas 是兩個在資料科學專案中時常使用的兩個套件。Pandas 主要用於資料輸入輸出及資料分析操作 ... ... <看更多>
matplotlib字體 在 Matplotlib字体设置 - Xiaofei's Blog 的推薦與評價
matplotlib字体 机制、字体缓存、修改字体、中文字体设置 ... from matplotlib import pyplot as plt plt.plot(range(10)) plt.title("哈哈") plt.show ... ... <看更多>
matplotlib字體 在 Re: [問題] matplotlib顯示中文的問題- 看板Python - 批踢踢實業坊 的推薦與評價
回應這個考古題一下
關於matplotlib顯示中文的問題
引言中與其推文的大大們都提供了不錯的解法
主要包含 詳細檔案的設定 與 pip install 兩種方式
之前我也是一直用prop fontproperties等等在製圖中一個個去處理中文問題
非常不方便
最近我以研究與練習的角度完成了「matplotlib-taiwan-font」
來跟大家推廣一下
用法上跟Hsins大大(本篇引文)幾乎一樣 但我只包了台北黑體
實作上沒有想太多 只希望能秀出中文而已
目前的安裝方式(要有git…)
pip install git+https://gitlab.com/scku208/matplotlib-taiwan-font
如果想用
pip install mpltw
請跟我說 有一個人附議我就回憶一下上傳pypi的方法(還是有志者願意代勞?
(最)簡易的使用範例
from mpltw import plt
plt.plot([1,2,3])
plt.title('直接用中文')
plt.show()
詳細(其實也還好)
還請參考模組網址 https://gitlab.com/scku208/matplotlib-taiwan-font
本模組使用台灣製造的MIT LICENSE
歡迎直接拿去用(code其實只有10行左右...)
有任何安裝或使用的問題 也歡迎任何方式的討論
我要去畫圖啦~ 謝謝大家
※ 引述《Hsins (迅雷不及掩耳盜鈴)》之銘言:
: tl;dr
: 長話短說,我弄了個套件只要 import 就能夠將思源繁中字體的三個常見字重和
: cwTeX 開源字體設定好,額外設定也不難。
: https://github.com/Hsins/mpl-tc-fonts
: 有興趣的可以慢慢看一下下面的內容,反正我禮拜一晚上追了一下,發現很多人
: 會隨便亂設定跟書上亂講是有情有可原的,並沒有想像中容易。
: ----
: 上禮拜剛好有朋友又問到這個問題,索性就跑去看了一下 matplotlib 關於字體
: 設定部分的原始碼。對整個 matplotlib 來說,字體渲染其實並不是一個那麼好
: 處理的部分,特別是當考慮到廣大的中日韓字元(CJK characters)使用者的時
: 候...
: 多數人卡關的其實是關於 matplotlib 字體緩存的部分,說穿了其實就是套件本
: 身會持有一個 FontList 去管理已知可用的字體,並且在自己的資料夾下面保有
: 字體檔的緩存,但這樣其實並不是一個節省空間的作法(系統字體倉庫有一份,
: 而我自己套件倉庫下又多存一份),所以在 2.0.0版本之後提供了直接使用字體
: 檔案路徑,添加進 FontList 以便使用時查找。
: 不過這一個階段又有人卡關了,因為必須提供字體檔案的絕對路徑,有一大部分
: 的使用者由於使用的作業系統有所不同,路徑的表達方式也有所不同,這一個問
: 題在早期使用 os 套件庫時會有些小問題,不過在 Python 3 之後提供了好用的
: pathlib 可以簡單又優雅地處理路徑在不同作業系統下表達方式不同的問題。
: 然而接下來又會撞到下一個關卡,就是設定 matplotlib 下繪圖的字體設定,在
: 官方文件裡面說:
: You can explicitly set which font family is picked up for a given
: font style (e.g., 'serif', 'sans-serif', or 'monospace').
: In the example below, we only allow one font family (Tahoma) for the
: sans-serif font style. The default family is set with the font.family
: rcparam, e.g.
: ```python
: rcParams['font.family'] = 'sans-serif'
: ```
: and for the font.family you set a list of font styles to try to find
: in order:
: ```python
: rcParams['font.sans-serif'] = ['Tahoma', 'DejaVu Sans',
: 'Lucida Grande', 'Verdana']
: ```
: 問題到了這裡,其實並沒有解決!在這裡上面的 'font.family' 是告訴繪圖的
: 套件我可以選用哪些字體族,比如此處只從 'sans-serif' 字體族去找字體,
: 於是我還必須在 'font.sans-serif' 字體族設定裡面去添加我的中文字體才能
: 滿足需求。
: 很多教學文章在這裡就全部亂了套,這些文章東抄西抄大概也沒有認真去看一下
: 問題到底在哪。比如把中文字體直接放在了 'font.family' 裡面,又或者是沒
: 有在 'font.family' 裡面添加 'serif' 就把中文字體添加到 'font.serif' 中
: ,一點用處也沒有。
: 然而即使把中文字體添加到上述的 'font.san-serif' 中了,問題也未必能夠解
: 決!因為還有一個關卡就是在這個字體列表中的字體順序。這邊必須特別提出來
: 講的原因就是 matplotlib 沒有實作字體回退(font fallback) 的機制,然而
: 字體設定又給你一個列表,多數人會誤以為這邊的運作機制和瀏覽器中的字體設
: 定一樣:
: https://www.ptt.cc/bbs/Web_Design/M.1279032453.A.80B.html
: 不不不!並不是這樣的,在 matplotlib 的認知裡面,這個字體列表並不是用來
: 「依序套用」字體的順序列表,是拿來「依序尋找」字體的順序列表,所以如果
: 字體列表中的第一個字體能夠在他維護的 FontList 中找到並且路徑有效,就會
: 用從頭到尾都用這個字體,如果這個字體是拉丁字符集,那麼遇到中日韓字符自
: 然會變成方塊(也就是俗稱的豆腐)。有興趣幫忙實作的可以追一下這個 issue
: :
: https://github.com/matplotlib/matplotlib/issues/18883
: 最後還請大家幫我測試一下有沒有什麼大問題
: 雖然沒什麼技術含量的一個 package....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.120.190 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1619147323.A.B16.html
※ 編輯: KSJ (122.116.120.190 臺灣), 04/23/2021 11:09:32
... <看更多>