Как я могу использовать шрифт любого типа в моей библиотеке шрифтов на моем компьютере (например, *otf
или *ttf
) во всех моих matplotlib
цифрах?
Как использовать (случайный) шрифт *.otf или *.ttf в matplotlib?
Ответ 1
См. пример здесь: http://matplotlib.sourceforge.net/examples/api/font_file.html
В общем, вы бы сделали что-то вроде этого, если хотите использовать определенный файл .ttf
. (Имейте в виду, что указание на конкретный файл шрифта, как правило, плохая идея!)
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(10))
prop = fm.FontProperties(fname='/usr/share/fonts/truetype/groovygh.ttf')
ax.set_title('This is some random font', fontproperties=prop, size=32)
plt.show()
Обычно вы просто указываете на имя шрифта, и пусть matplotlib беспокоится о поиске конкретного файла. Например.
import matplotlib.pyplot as plt
plt.plot(range(10))
plt.title('This is some random font', family='GroovyGhosties', size=32)
plt.show()
Если вы хотите, чтобы matplotlib всегда использовал конкретный шрифт, настройте свой .matplotlibrc
файл. (font.family
- это то, что вы хотите установить. Обратите внимание, что вы должны указать имя шрифта, а не путь к определенному файлу .ttf.)
В качестве примера выполните это динамически (т.е. не настроив конкретный файл .matplotlibrc
):
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()
Ответ 2
В * nix вы можете использовать все ваши системные шрифты, включив бэкэнд matplotlib fontconfig.
Однако matplotlib на самом деле не разговаривает с библиотеками fontconfig, он эмулирует его поведение, запустив утилиты fontconfig cli.
Таким образом, nuking matplotlib fontconfig cache, так что он обнаруживает, что новые шрифты могут быть спасателями (существование этого кеша является прямым доказательством отсутствия полной интеграции fontconfig).