在學術論文中的圖件(Scientific figures),優秀的圖有四個特點:簡單(Simple)、清晰(Clean)、易讀(undisputedly easy to read)、美觀。而Matplotlib可以做絕大多數的圖,使用非常廣泛,而且非常容易上手,可以保存高質量的矢量圖(eps,pdf,ps)。在使用之前當然得關心它的字體庫了。
Helvetica字體
繪圖中常用的字體,而且挺美觀。大家熟知的gmt的默認字體就是Helvetica。可是Matplotlib并沒有自帶這個字體庫。其實Helvetica和Arial字體之間差別很小。
查看Matplotlib自帶字體庫
通過以下font_manager
可以查看Matplotlib自帶的字體庫
import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
安裝Helvetica字體庫
在Mac系統中,Helvetica字體保存在.dfont
文件中,但是Matplotlib訪問不了這個文件。我們需要通過以下步驟來實現其訪問權限
找到Helvetica字體的系統中的位置
直接使用命令查看:ls /System/Library/Fonts/Helvetica*
或者用Mac的字體查看器查看,然后在finder中顯示
Font Book
將Mac-Helvetica字體轉換為ttf-Helvetica
網上有人推薦用fondu
程序實現這兩個字體之間的轉換,安裝:brew install fondu
.
但是如果沒有找到.dfont
文件,只有.ttc
或者轉換失敗,可以使用在線轉換程序進行轉換。
fondu提示錯誤: Can't find an appropriate resource fork in Helvetica.ttc
加入字體搜索路徑
- 將轉換成功的
.ttf
字體文件拷貝到~/Library/Fonts
路徑下 - 刪除matplotlib字體緩存文件:
rm ~/.matplotlib/fontList.json
- 設置默認字體:
matplotlib.rcParams["font.family"] = 'Helvetica'
顯示效果
Arial
Helvetica
不仔細看根本看不出來這兩者的區別??