matplotlib.font_manager
Модуль для поиска, управления и использования шрифтов на разных платформах.
Этот модуль предоставляет единственный FontManager экземпляр, fontManager, который можно использовать в разных бэкэндах и на разных платформах. Функция findfont возвращает лучший TrueType (TTF) шрифт в локальном или системном пути, который соответствует указанному FontProperties экземпляру. FontManager также обрабатывает шрифты в формате Adobe Font Metrics (AFM) для использования бэкэндом PostScript.
Дизайн основан на спецификации шрифтов W3C Cascading Style Sheet, Level 1 (CSS1). Будущие версии могут реализовать спецификации Level 2 или 2.1.
- classmatplotlib.font_manager.FontManager(size=None, weight='normal')[source]
-
Bases:
objectПри импорте объект
FontManagerсоздаёт список шрифтов ttf и afm и кэширует ихFontProperties. МетодFontManager.findfontвыполняет поиск ближайшего соседа для нахождения шрифта, наиболее соответствующего заданным параметрам. Если подходящий шрифт не найден, возвращается шрифт по умолчанию.- addfont(path)[source]
-
Кэширует свойства шрифта по пути path для его доступности объекту
FontManager. Тип шрифта определяется по расширению пути.- Параметры:
-
- pathстрока или путь
- propertydefaultFont
- findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[source]
-
Находит шрифт, наиболее соответствующий заданным свойствам.
- Параметры:
-
-
propстрока или
FontProperties -
Свойства шрифта для поиска. Может быть объектом
FontPropertiesили строкой, определяющей шаблоны fontconfig. - fontext{'ttf', 'afm'}, по умолчанию: 'ttf'
-
Расширение файла шрифта:
- 'ttf': шрифты TrueType и OpenType (.ttf, .ttc, .otf)
- 'afm': метрики шрифтов Adobe (.afm)
- directoryстрока, необязательно
-
Если указан, поиск будет проводиться только в этой директории и её поддиректориях.
- fallback_to_defaultbool
-
Если True, при неудачном поиске будет возвращён шрифт по умолчанию (обычно "DejaVu Sans" или "Helvetica").
- rebuild_if_missingbool
-
Перестраивать кэш шрифтов и переискать, если первый результат указывает на несуществующий шрифт (т.е. кэш шрифтов содержит устаревшие записи).
-
propстрока или
- Возвращает:
-
- строка
-
Имя файла наиболее подходящего шрифта.
Примечания
Используется поиск ближайшего соседа. Каждый шрифт получает оценку схожести с целевыми свойствами шрифта. Возвращается шрифт с наибольшей оценкой. Если подходящих шрифтов не найдено, возвращается шрифт по умолчанию (обычно DejaVu Sans).
Результат кэшируется, поэтому последующие запросы не требуют выполнения поиска ближайшего соседа O(n).
См. документацию спецификации CSS, уровень 1 для описания алгоритма поиска шрифта.
- staticget_default_size()[source]
-
Возвращает размер шрифта по умолчанию.
- get_default_weight()[source]
-
Возвращает толщину шрифта по умолчанию.
- get_font_names()[source]
-
Возвращает список доступных шрифтов.
- score_family(families, family2)[source]
-
Возвращает оценку соответствия списка семейств шрифтов families и имени семейства шрифтов family2.
Полное совпадение в начале списка возвращает 0.0.
Совпадение далее по списку возвращает значение от 0 до 1.
Отсутствие совпадения возвращает 1.0.
- score_size(size1, size2)[source]
-
Возвращает оценку соответствия между size1 и size2.
Если size2 (размер, указанный в файле шрифта) — 'scalable', эта функция всегда возвращает 0.0, так как любой размер шрифта может быть сгенерирован.
В противном случае результат — абсолютное расстояние между size1 и size2, нормализованное так, чтобы обычный диапазон размеров шрифтов (6pt - 72pt) лежал между 0.0 и 1.0.
- score_stretch(stretch1, stretch2)[source]
-
Возвращает оценку соответствия между stretch1 и stretch2.
Результат — абсолютное значение разницы между числовыми значениями CSS stretch1 и stretch2, нормализованное между 0.0 и 1.0.
- score_style(style1, style2)[source]
-
Возвращает оценку соответствия между style1 и style2.
Полное совпадение возвращает 0.0.
Совпадение 'italic' и 'oblique' возвращает 0.1.
Отсутствие совпадения возвращает 1.0.
- score_variant(variant1, variant2)[source]
-
Возвращает оценку соответствия между variant1 и variant2.
Полное совпадение возвращает 0.0, в противном случае 1.0.
- score_weight(weight1, weight2)[source]
-
Возвращает оценку соответствия между weight1 и weight2.
Возвращает 0.0, если оба weight1 и weight2 заданы в виде строк и имеют одинаковое значение.
В противном случае результат — абсолютное значение разницы между числовыми значениями CSS weight1 и weight2, нормализованное между 0.05 и 1.0.
- set_default_weight(weight)[source]
-
Установить значение по умолчанию для веса шрифта. Начальное значение — 'normal'.
- classmatplotlib.font_manager.FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, math_fontfamily=None)[source]
-
Основы:
objectКласс для хранения и обработки свойств шрифта.
Свойства шрифта — это шесть свойств, описанных в спецификации шрифтов W3C Cascading Style Sheet, Level 1, и math_fontfamily для математических шрифтов:
- family: Список имён шрифтов в порядке убывания приоритета. Элементы могут включать общее название начертания шрифта, такие как 'sans-serif', 'serif', 'cursive', 'fantasy' или 'monospace'. В этом случае фактический шрифт будет найден из соответствующего параметра rcParam в процессе поиска в
findfont. По умолчанию:rcParams["font.family"](по умолчанию:['sans-serif']) - style: 'normal', 'italic' или 'oblique'. По умолчанию:
rcParams["font.style"](по умолчанию:'normal') - variant: 'normal' или 'small-caps'. По умолчанию:
rcParams["font.variant"](по умолчанию:'normal') - stretch: Числовое значение в диапазоне 0-1000 или одно из 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded' или 'ultra-expanded'. По умолчанию:
rcParams["font.stretch"](по умолчанию:'normal') - weight: Числовое значение в диапазоне 0-1000 или одно из 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'. По умолчанию:
rcParams["font.weight"](по умолчанию:'normal') - size: Относительное значение 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' или абсолютный размер шрифта, например, 10. По умолчанию:
rcParams["font.size"](по умолчанию:10.0) - math_fontfamily: Начертание шрифтов, используемых для отображения математического текста. Поддерживаемые значения: 'dejavusans', 'dejavuserif', 'cm', 'stix', 'stixsans' и 'custom'. По умолчанию:
rcParams["mathtext.fontset"](по умолчанию:'dejavusans')
В качестве альтернативы, шрифт можно указать, используя абсолютный путь к файлу шрифта, используя параметр fname. Однако в этом случае обычно проще просто передать путь (как
pathlib.Path, а неstr) в параметр font объектаText.Предпочтительно использовать относительные значения размеров шрифта, например, 'large', вместо абсолютных значений, например, 12. Этот подход позволяет увеличивать или уменьшать все размеры текста на основе размера шрифта по умолчанию менеджера шрифтов.
Этот класс также примет шаблон fontconfig pattern, если это единственный предоставленный аргумент. Эта поддержка не зависит от fontconfig; мы просто заимствуем его синтаксис шаблонов для использования здесь.
Обратите внимание, что внутренний менеджер шрифтов Matplotlib и fontconfig используют другой алгоритм для поиска шрифтов, поэтому результаты одного и того же шаблона могут отличаться в Matplotlib от других приложений, использующих fontconfig.
- copy()[source]
-
Возвращает копию self.
- get_family()[source]
-
Возвращает список отдельных имён начертаний шрифтов или общих семейств шрифтов.
Семейства шрифтов или общие семейства шрифтов (которые будут разрешены из соответствующих параметров rcParams при поиске сопоставимого шрифта) в порядке предпочтения.
- get_file()[source]
-
Возвращает имя файла связанного шрифта.
- get_fontconfig_pattern()[source]
-
Получает шаблон fontconfig pattern, подходящий для поиска шрифта, как указано с помощью утилиты fontconfig's
fc-match.Эта поддержка не зависит от fontconfig; мы просто заимствуем его синтаксис шаблонов для использования здесь.
- get_math_fontfamily()[source]
-
Возвращает имя семейства шрифтов, используемого для математического текста.
По умолчанию
rcParams["mathtext.fontset"](по умолчанию:'dejavusans').
- get_name()[source]
-
Возвращает имя шрифта, который лучше всего соответствует свойствам шрифта.
- get_size()[source]
-
Возвращает размер шрифта.
- get_size_in_points()[source]
-
Возвращает размер шрифта.
- get_slant()[source]
-
Возвращает стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
- get_stretch()[source]
-
Возвращает расширение или ширину шрифта. Варианты: 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'.
- get_style()[source]
-
Возвращает стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
- get_variant()[source]
-
Возвращает вариант шрифта. Значения: 'normal' или 'small-caps'.
- get_weight()[source]
-
Устанавливает начертание шрифта. Варианты: Числовое значение в диапазоне 0-1000 или одно из 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'
- family: Список имён шрифтов в порядке убывания приоритета. Элементы могут включать общее название начертания шрифта, такие как 'sans-serif', 'serif', 'cursive', 'fantasy' или 'monospace'. В этом случае фактический шрифт будет найден из соответствующего параметра rcParam в процессе поиска в
- set_family(family)[source]
-
Изменить семейство шрифтов. Может быть псевдонимом (общим именем в терминологии CSS), например: 'serif', 'sans-serif', 'cursive', 'fantasy', или 'monospace', реальным именем шрифта или списком реальных имён шрифтов. Реальные имена шрифтов не поддерживаются, когда
rcParams["text.usetex"](по умолчанию:False) равенTrue. По умолчанию:rcParams["font.family"](по умолчанию:['sans-serif'])
- set_file(file)[source]
-
Установить имя файла шрифта для использования. В этом случае все другие свойства будут игнорироваться.
- set_fontconfig_pattern(pattern)[source]
-
Установить свойства, разобрав шаблон fontconfig.
Эта поддержка не зависит от fontconfig; мы просто заимствуем его синтаксис шаблонов для использования здесь.
- set_math_fontfamily(fontfamily)[source]
-
Установить семейство шрифтов для текста в математическом режиме.
Если явно не задано, будет использоваться
rcParams["mathtext.fontset"](по умолчанию:'dejavusans')- Параметры:
-
- fontfamilystr
-
Название семейства шрифтов.
Доступные семейства шрифтов определены в файле matplotlibrc по умолчанию.
См. также
- set_name(family)[source]
-
Изменить семейство шрифтов. Может быть псевдонимом (общим именем в терминологии CSS), например: 'serif', 'sans-serif', 'cursive', 'fantasy', или 'monospace', реальным именем шрифта или списком реальных имён шрифтов. Реальные имена шрифтов не поддерживаются, когда
rcParams["text.usetex"](по умолчанию:False) равенTrue. По умолчанию:rcParams["font.family"](по умолчанию:['sans-serif'])
- set_size(size)[source]
-
Установить размер шрифта.
- Параметры:
-
-
sizefloat или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
rcParams["font.size"](по умолчанию:10.0) -
Если float, размер шрифта в пунктах. Строковые значения обозначают размеры, относительные к размеру шрифта по умолчанию.
-
sizefloat или {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, по умолчанию:
- set_slant(style)[source]
-
Установить стиль шрифта.
- Параметры:
-
-
style{'normal', 'italic', 'oblique'}, по умолчанию:
rcParams["font.style"](по умолчанию:'normal')
-
style{'normal', 'italic', 'oblique'}, по умолчанию:
- set_stretch(stretch)[source]
-
Установить сжатие или ширину шрифта.
- Параметры:
-
-
stretchint или {'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}, по умолчанию:
rcParams["font.stretch"](по умолчанию:'normal') -
Если int, должно быть в диапазоне от 0 до 1000.
-
stretchint или {'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'}, по умолчанию:
- set_style(style)[source]
-
Установить стиль шрифта.
- Параметры:
-
-
style{'normal', 'italic', 'oblique'}, по умолчанию:
rcParams["font.style"](по умолчанию:'normal')
-
style{'normal', 'italic', 'oblique'}, по умолчанию:
- set_variant(variant)[source]
-
Установить тип шрифта.
- Параметры:
-
-
variant{'normal', 'small-caps'}, по умолчанию:
rcParams["font.variant"](по умолчанию:'normal')
-
variant{'normal', 'small-caps'}, по умолчанию:
- set_weight(weight)[source]
-
Установить вес шрифта.
- Параметры:
-
-
weightint или {'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}, по умолчанию:
rcParams["font.weight"](по умолчанию:'normal') -
Если int, должно быть в диапазоне от 0 до 1000.
-
weightint или {'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}, по умолчанию:
- matplotlib.font_manager.afmFontProperty(fontpath, font)[source]
-
Извлечение информации из файла шрифта AFM.
- Параметры:
-
- fontAFM
-
Файл шрифта AFM, из которого будет извлечена информация.
- Возвращает:
-
FontEntry-
Извлечённые свойства шрифта.
- matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')[source]
-
Поиск шрифтов в указанных путях. Если пути не указаны, будут использованы стандартные системные пути, а также список шрифтов, отслеживаемых fontconfig, если fontconfig установлен и доступен. По умолчанию возвращается список шрифтов TrueType, с AFM шрифтами как вариантом.
- matplotlib.font_manager.findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[source]
-
Поиск шрифта, наиболее точно соответствующего заданным свойствам шрифта.
- Параметры:
-
-
propstr или
FontProperties -
Свойства шрифта для поиска. Это может быть объект
FontPropertiesили строка, определяющая шаблоны fontconfig. - fontext{'ttf', 'afm'}, по умолчанию: 'ttf'
-
Расширение файла шрифта:
- 'ttf': шрифты TrueType и OpenType (.ttf, .ttc, .otf)
- 'afm': метрики шрифтов Adobe (.afm)
- directorystr, необязательно
-
Если задано, поиск будет проводиться только в этой директории и ее поддиректориях.
- fallback_to_defaultbool
-
Если True, будет использоваться шрифт по умолчанию (обычно "DejaVu Sans" или "Helvetica"), если первый поиск не увенчался успехом.
- rebuild_if_missingbool
-
Перестроить кэш шрифтов и выполнить поиск заново, если первый совпадение указывает на несуществующий шрифт (т. е. кэш шрифтов содержит устаревшие записи).
-
propstr или
- Возвращаемое значение:
-
- str
-
Имя файла лучшего соответствующего шрифта.
Примечания
Выполняется поиск ближайшего соседа. Каждый шрифт получает оценку близости к целевым свойствам шрифта. Возвращается первый шрифт с наибольшим результатом. Если совпадений ниже определенного порога не найдено, возвращается шрифт по умолчанию (обычно DejaVu Sans).
Результат кешируется, поэтому последующие запросы не должны выполнять поиск ближайшего соседа O(n).
См. документацию спецификации W3C по каскадным таблицам стилей, уровень 1 для описания алгоритма поиска шрифтов.
- matplotlib.font_manager.get_font(font_filepaths, hinting_factor=None)[source]
-
Получение объекта
ft2font.FT2Fontпо списку путей к файлам.- Параметры:
-
- font_filepathsIterable[str, Path, bytes], str, Path, bytes
-
Относительные или абсолютные пути к файлам шрифтов, которые будут использоваться.
Если передана единственная строка, байты или
pathlib.Path, она будет обработана как список с этой единственной записью.Если передано более одного пути, возвращаемый объект FT2Font будет обращаться к шрифтам в указанном порядке, чтобы найти необходимый глиф.
- Возвращаемое значение:
-
ft2font.FT2Font
- matplotlib.font_manager.get_font_names()[source]
-
Возвращает список доступных шрифтов.
- matplotlib.font_manager.get_fontext_synonyms(fontext)[source]
-
Возвращает список расширений файлов, которые являются синонимами для данного расширения файла fileext.
- matplotlib.font_manager.is_opentype_cff_font(filename)[source]
-
Возвращает True, если данный шрифт является шрифтом Postscript Compact Font Format, встроенным в оболочку OpenType. Используется бэкендами PostScript и PDF, которые не могут подключать эти шрифты.
- matplotlib.font_manager.json_dump(data, filename)[source]
-
Сохраняет
FontManagerdata в формате JSON в файл с именем filename.См. также
Примечания
Пути к файлам, являющимся подкаталогами пути к данным Matplotlib (обычно, шрифты, поставляемые с Matplotlib), сохраняются относительно этого пути к данным (чтобы оставаться действительными в различных окружениях virtualenv).
Эта функция временно блокирует выходной файл, чтобы предотвратить перезапись одних и тех же данных несколькими процессами.
- matplotlib.font_manager.json_load(filename)[source]
-
Загрузка
FontManagerиз файла JSON с именем filename.См. также
- matplotlib.font_manager.list_fonts(directory, extensions)[source]
-
Возвращает список всех шрифтов, соответствующих любому из расширений, найденных рекурсивно в каталоге.
- matplotlib.font_manager.ttfFontProperty(font)[source]
-
Извлечение информации из файла шрифта TrueType.
- Параметры:
-
-
font
FT2Font -
Файл шрифта TrueType, из которого будет извлечена информация.
-
font
- Возвращает:
-
FontEntry-
Извлеченные свойства шрифта.
- matplotlib.font_manager.win32FontDirectory()[source]
-
Возвращает указанный пользователем каталог шрифтов для Win32. Этот каталог ищется в ключе реестра
\\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Fonts
Если ключ не найден, будет возвращено
%WINDIR%\Fonts.
- matplotlib.font_manager.fontManager[source]
-
Глобальный экземпляр
FontManager.
- classmatplotlib.font_manager.FontEntry(fname:str='', name:str='', style:str='normal', variant:str='normal', weight:str='normal', stretch:str='normal', size:str='medium')[source]
-
Класс для хранения свойств шрифта.
Используется при заполнении словаря поиска шрифтов.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.7.5/api/font_manager_api.html