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. Тип шрифта определяется по расширению пути.- Параметры:
-
- pathstr или путь
- propertydefaultFont
- 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 Cascading Style Sheet, Level 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]
-
Bases:
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.template здесь
См. также
- 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) -
Если число, размер шрифта в пунктах. Строковые значения обозначают размеры относительно размера шрифта по умолчанию.
-
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') -
Если целое число, должно быть в диапазоне 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') -
Если целое число, должно быть в диапазоне 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, если он установлен и доступен. По умолчанию возвращается список шрифтов TrueType, а в качестве варианта — AFM-шрифты.
- matplotlib.font_manager.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 Font Metrics (.afm)
- directoryстрока, необязательно
-
Если задано, поиск будет производиться только в этой директории и её поддиректориях.
- fallback_to_defaultлогическое значение
-
Если True, будет переключаться на стандартный шрифт (обычно "DejaVu Sans" или "Helvetica"), если первый поиск терпит неудачу.
- rebuild_if_missingлогическое значение
-
Выполнять ли повторную сборку кэша шрифтов и повторный поиск, если первая найденная запись указывает на несуществующий шрифт (т.е., кеш шрифтов содержит устаревшие записи).
-
propстрока или
- Возвращает:
-
- строка
-
Имя файла наилучшего подходящего шрифта.
Примечания
Выполняется поиск ближайшего соседа. Каждый шрифт получает оценку сходства со свойствами целевого шрифта. Возвращается первый шрифт с наивысшим значением оценки. Если не найдены совпадения ниже определенного порога, возвращается шрифт по умолчанию (обычно DejaVu Sans).
Результат кэшируется, поэтому последующие запросы не требуют выполнения поиска ближайшего соседа O(n).
См. документацию W3C Cascading Style Sheet, Level 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_fontconfig_fonts(fontext='ttf')[source]
-
[Устарело] Список имён файлов шрифтов, известных
fc-listс заданным расширением.Примечания
Устарело начиная с версии 3.5.
- matplotlib.font_manager.get_fontext_synonyms(fontext)[source]
-
Возвращает список расширений файлов, которые являются синонимами данного расширения файла fileext.
- matplotlib.font_manager.is_opentype_cff_font(filename)[source]
-
Возвращает значение, указывающее, является ли данный шрифт шрифтом Postscript Compact Font Format, встроенным в обёртку OpenType. Используется бэкендами PostScript и PDF, которые не могут подключать эти шрифты.
- matplotlib.font_manager.json_dump(data, filename)[source]
-
Выгрузить данные
FontManagerв формате 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.win32InstalledFonts(directory=None, fontext='ttf')[source]
-
[Устарело] Ищет шрифты в указанном каталоге шрифтов или использует системные каталоги, если не указано. Дополнительно ищутся пользовательские установленные шрифты. По умолчанию возвращается список имен файлов шрифтов TrueType или шрифтов AFM, если fontext == 'afm'.
Примечания
Устарело начиная с версии 3.5.
- classmatplotlib.font_manager.FontEntry(fname:str='', name:str='', style:str='normal', variant:str='normal', weight:str='normal', stretch:str='normal', size:str='medium')
-
Класс для хранения свойств шрифта.
Используется при заполнении словаря поиска шрифтов.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.6.0/api/font_manager_api.html