Python 如何在matplotlib中使用(随机)*.otf或*.ttf字体?

Python 如何在matplotlib中使用(随机)*.otf或*.ttf字体?,python,matplotlib,fonts,Python,Matplotlib,Fonts,如何在我所有的matplotlib图形中使用计算机字体库中的任何类型的字体(例如*otf或*ttf) 通常,如果您想使用特定的.ttf文件,您会这样做。(请记住,指向特定字体文件通常不是一个好主意!) 通常,您只需指向字体的名称,让matplotlib负责查找特定的文件。例如 import matplotlib.pyplot as plt plt.plot(range(10)) plt.title('This is some random font', family='GroovyGhost

如何在我所有的
matplotlib
图形中使用计算机字体库中的任何类型的字体(例如
*otf
*ttf

通常,如果您想使用特定的
.ttf
文件,您会这样做。(请记住,指向特定字体文件通常不是一个好主意!)

通常,您只需指向字体的名称,让matplotlib负责查找特定的文件。例如

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.title('This is some random font', family='GroovyGhosties', size=32)

plt.show()
如果希望matplotlib始终使用特定字体,则。(
font.family
是您想要设置的。请注意,您应该指定字体名称,而不是特定.ttf文件的路径。)

作为动态执行此操作的示例(即不设置特定的
.matplotlibrc
文件):


在*nix上,通过启用matplotlib的fontconfig后端,您可以使用所有系统字体

但是,matplotlib并不真正与fontconfig库对话,而是通过运行fontconfig cli实用程序来模拟其行为


因此,对matplotlib fontconfig缓存进行nuking操作以发现新字体可以起到救命的作用(此缓存的存在直接证明没有完整的fontconfig集成)。

您也可以在matplot config中指定字体并覆盖默认字体系列,例如*nix

~/.matplotlib/matplotlibrc

font.family: sans-serif
font.sans-serif: your font,sans-serif

它不适合我(Python3.6),如果字体不被识别,它只使用默认字体可能这并不能回答问题,但是你保存了我的最后几滴理智。谢谢没有应用新的系统字体,因此我删除了以下文件夹:~/.matplotlib、~/.cache/matplotlib、~/.cache/fontconfig。请务必重新启动python环境。感谢您指出缓存位置。为我工作。
import matplotlib as mpl
mpl.rcParams['font.family'] = 'GroovyGhosties'

import matplotlib.pyplot as plt

plt.plot(range(10))
plt.title('Everything is crazy!!!', size=32)
plt.show()
font.family: sans-serif
font.sans-serif: your font,sans-serif