Как использовать (случайный) шрифт * .otf или * .ttf в matplotlib? - PullRequest
32 голосов
/ 11 октября 2011

Как мне использовать любой тип шрифта в моей библиотеке шрифтов на моем компьютере (например, *otf или *ttf) во всех моих matplotlib цифрах?

Ответы [ 3 ]

56 голосов
/ 11 октября 2011

См. Пример здесь: 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()

enter image description here

Обычно вы просто указываете на имя шрифта,и пусть 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()

enter image description here

0 голосов
/ 21 ноября 2018

Вы также можете указать шрифт и переопределить семейство шрифтов по умолчанию в конфигурации matplot, например, для * nix

~ / .matplotlib / matplotlibrc

font.family: sans-serif
font.sans-serif: your font,sans-serif
0 голосов
/ 22 ноября 2016

В * nix вы можете использовать все системные шрифты, включив бэкэнд fontconfig matplotlib.

Однако matplotlib на самом деле не общается с библиотеками fontconfig, он эмулирует свое поведение, запуская утилиты fontconfig cli.

Таким образом, использование кеша matplotlib fontconfig для обнаружения новых шрифтов может стать спасением (наличие этого кэша является прямым доказательством отсутствия полной интеграции fontconfig).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...