2012-01-06 79 views
24

例如當我想要設置font如何獲取當前可用於Matplotlib的所有字體的列表?

matplotlib.rc('font', **font) 

謝謝。

+0

顯然沒有這些將列出可用的字體在'MPL數據'〜/ anaconda/lib/pythonX.X/site-packages/matplotlib/mpl-data/fonts/ttf'中找到的目錄(嘗試'import matplotlib; matplotlib.matplotlib_fname()'以獲取確切位置)。儘管**使用'fname = '在這個位置加載字體的事實是成功的**。有沒有人有答案,會這樣做? – 2017-12-08 23:52:13

回答

39
import matplotlib.font_manager 
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf') 

檢查this其他選項。

+0

很酷,謝謝!順便說一句:顯然你必須'導入matplotlib.font_manager'使事情發生;-) – nye17 2012-01-06 16:12:08

+0

正確。我編輯了答案。 – imsc 2012-01-07 20:27:54

+1

另外,指定的參數是默認值,所以'matplotlib.font_manager.findSystemFonts()'返回相同的結果。 – 2012-01-07 23:43:09

13

要獲取可用的字體(讀取)列表matplotlib

import matplotlib.font_manager 
flist = matplotlib.font_manager.get_fontconfig_fonts() 
names = [matplotlib.font_manager.FontProperties(fname=fname).get_name() for fname in flist] 
print names 

documentation建議get_fontconfig_fonts()

這是抓住所有用戶想要的字體的簡單方法被製作成 可供應用程序使用,而不需要知道它們全部在哪裏 駐留。

注意,您可以通過使用FontProperties類得到(逆)名稱字體查找容易:

font = matplotlib.font_manager.FontProperties(family='TeX Gyre Heros') 
file = matplotlib.font_manager.findfont(font) 

findfont是穩健的,因爲它返回,如果它不能找到匹配的屬性默認字體。

+0

整潔,謝謝。看起來像這個給出了實際的**可調名稱**,而接受的答案顯示了實際的'.ttf'文件。不幸的是,無論什麼原因**這在我的Macbook(MacOS Sierra)**上失敗了,但在我使用的一些遠程Linux服務器上工作。接受的答案無處不在。 – 2017-12-08 13:11:36

0

this blog post,該代碼將讓你可用的字體和樣品:

import matplotlib.font_manager 
from IPython.core.display import HTML 

def make_html(fontname): 
    return "<p>{font}: <span style='font-family:{font}; font-size: 24px;'>{font}</p>".format(font=fontname) 

code = "\n".join([make_html(font) for font in sorted(set([f.name for f in matplotlib.font_manager.fontManager.ttflist]))]) 

HTML("<div style='column-count: 2;'>{}</div>".format(code)) 

例如:

enter image description here

相關問題