ims*_*msc 52

import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
Run Code Online (Sandbox Code Playgroud)

检查其他的选择.

  • 知道如何获取已安装的字体系列的名称而不是单个文件? (3认同)
  • 此外,指定的参数是默认值,因此“matplotlib.font_manager.findSystemFonts()”返回相同的内容。 (2认同)

alo*_*odi 20

获得可读的(可读)字体列表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
Run Code Online (Sandbox Code Playgroud)

文件建议get_fontconfig_fonts():

这是一种简单的方法,可以获取用户希望为应用程序提供的所有字体,而无需知道所有字体的所在位置.

请注意,您可以使用FontProperties类轻松获取(反向)名称以进行字体查找:

font = matplotlib.font_manager.FontProperties(family='TeX Gyre Heros')
file = matplotlib.font_manager.findfont(font)
Run Code Online (Sandbox Code Playgroud)

findfont 是健壮的,因为如果它找不到匹配的属性,它会返回默认字体.

  • 返回空列表 Python 3.8.3 + matploblib 3.3.2 (4认同)

Max*_*Max 18

接受的答案仅提供计算机上字体的路径列表,但不提供可以传递给的字体名称rcParams。@Alodi 的答案解决了这一点,但已经过时了。

在带有 Matplotlib 3.3.4 的 Python 3.8.8 中,您可以使用以下命令:

import matplotlib.font_manager
fpaths = matplotlib.font_manager.findSystemFonts()

for i in fpaths:
    f = matplotlib.font_manager.get_font(i)
    print(f.family_name)
Run Code Online (Sandbox Code Playgroud)

它打印字体名称列表:

Padauk Book
Laksaman
Waree
Umpush
Latin Modern Roman Demi
Tlwg Mono
Gubbi
...
Run Code Online (Sandbox Code Playgroud)


Max*_*nis 10

根据这篇博文,这段代码将为您提供可用的字体和示例:

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))
Run Code Online (Sandbox Code Playgroud)

例如:

在此输入图像描述


tdy*_*tdy 10

matplotlib 3.6.0 中的新增功能

现在有一个辅助方法get_font_names()来列出所有可用的字体:

from matplotlib import font_manager
font_manager.get_font_names()
Run Code Online (Sandbox Code Playgroud)

请注意,结果列表不会按字母顺序排列。如果您只是以编程方式检查某些内容,那就没问题,但如果您以视觉方式检查,请按字母顺序排序以便于扫描:

sorted(font_manager.get_font_names())

# ['Advent Pro',
#  'Anonymous Pro',
#  ...
#  'DejaVu Sans',
#  'DejaVu Sans Mono',
#  'DejaVu Serif',
#  ...
#  'Noto Mono',
#  'Noto Sans',
#  'Noto Serif',
#  ...
#  'Roboto',
#  'Roboto Flex',
#  'Roboto Mono',
#  'Roboto Serif',
#  ...
#  'TeX Gyre Adventor',
#  'TeX Gyre Bonum',
#  'TeX Gyre Chorus',
#  'TeX Gyre Cursor',
#  'TeX Gyre Heros',
#  'TeX Gyre Pagella',
#  'TeX Gyre Schola',
#  'TeX Gyre Termes',
#  ...
#  'Ubuntu',
#  'Ubuntu Mono']
Run Code Online (Sandbox Code Playgroud)