比如说当我想要设置字体时,可以使用font
标签。
matplotlib.rc('font', **font)
比如说当我想要设置字体时,可以使用font
标签。
matplotlib.rc('font', **font)
import matplotlib.font_manager
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')
查看这里获取其他选项。
import matplotlib.font_manager
才能让事情发生;-) - nye17matplotlib.font_manager.findSystemFonts()
返回相同的结果。 - Joe Kington要获取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
文档建议使用get_fontconfig_fonts()
:
这是一种简单的方法,可以获取用户想要在应用程序中使用的所有字体,而不需要知道它们全部在哪里。
请注意,您可以通过使用FontProperties
类轻松地获取(反向)名称到字体查找:
font = matplotlib.font_manager.FontProperties(family='TeX Gyre Heros')
file = matplotlib.font_manager.findfont(font)
findfont
如果找不到匹配的字体属性,它会返回一个默认字体,因此具有鲁棒性。
.ttf
文件。不幸的是,由于某种原因,在我的Macbook(MacOS Sierra)上失败了,但在我使用的一些远程Linux服务器上可以工作。被接受的答案在任何地方都有效。 - Luke DavisfindSystemFonts()
替换 get_fontconfig_fonts()
,那么这个程序就能正常工作。 - Brandon Kuczenski根据这篇博客文章,以下代码可以让你获取可用的字体以及样例:
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))
例如:
被接受的答案仅提供计算机上字体文件的路径列表,而没有字体名称,您可以将其传递给 rcParams
。 @Alodi的回答解决了这个问题,但已经过时。
在Python 3.8.8和Matplotlib 3.3.4中,您可以使用以下内容:
import matplotlib.font_manager
fpaths = matplotlib.font_manager.findSystemFonts()
for i in fpaths:
f = matplotlib.font_manager.get_font(i)
print(f.family_name)
它打印字体名称的列表:
Padauk Book
Laksaman
Waree
Umpush
Latin Modern Roman Demi
Tlwg Mono
Gubbi
...
现在,有一个帮助方法get_font_names()
用于列出所有可用的字体:
from matplotlib import font_manager
font_manager.get_font_names()
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']
mpl-data
目录中可用的字体,该目录位于~/anaconda/lib/pythonX.X/site-packages/matplotlib/mpl-data/fonts/ttf
(尝试import matplotlib; matplotlib.matplotlib_fname()
以获取确切位置)。尽管在此位置使用fname=<font>
加载字体成功。有没有人能给出一个能够做到这一点的答案? - Luke Davis