matplotlib.font_manager
Модуль для поиска, управления и использования шрифтов на разных платформах.
Этот модуль предоставляет единственный экземпляр 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. Тип шрифта определяется по суффиксу пути.- Parameters
-
- pathstr или path-подобный объект
- propertydefaultFont
- findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[source]
-
Находит шрифт, наиболее соответствующий заданным свойствам.
- Parameters
-
-
propstr или
FontProperties -
Свойства шрифта для поиска. Может быть объектом
FontPropertiesили строкой, определяющей паттерны fontconfig. - fontext{'ttf', 'afm'}, по умолчанию: 'ttf'
-
Расширение файла шрифта:
- 'ttf': TrueType и OpenType шрифты (.ttf, .ttc, .otf)
- 'afm': Adobe Font Metrics (.afm)
- directorystr, необязательно
-
Если указано, поиск выполняется только в этой директории и её поддиректориях.
- fallback_to_defaultbool
-
Если True, будет использован шрифт по умолчанию (обычно "DejaVu Sans" или "Helvetica"), если прямой поиск не даёт результатов.
- rebuild_if_missingbool
-
Перестроить кэш шрифтов и выполнить поиск заново, если первый результат указывает на несуществующий шрифт (т.е. кэш шрифтов содержит устаревшие записи).
-
propstr или
- Returns
-
- str
-
Имя файла наилучшего подходящего шрифта.
Примечания
Используется поиск ближайшего совпадения. Каждый шрифт получает оценку сходства со свойствами целевого шрифта. Возвращается первый шрифт с наивысшей оценкой. Если не найдено совпадений с заданным порогом, возвращается шрифт по умолчанию (обычно DejaVu Sans).
Результат кэшируется, поэтому последующие запросы не требуют выполнения поиска ближайшего совпадения O(n).
См. документацию W3C Cascading Style Sheet, Level 1 для описания алгоритма поиска шрифтов.
- staticget_default_size()[source]
-
Возвращает размер шрифта по умолчанию.
- get_default_weight()[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'.
- классmatplotlib.font_manager.FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None, math_fontfamily=None)[source]
-
Bases:
objectКласс для хранения и обработки свойств шрифта.
Свойства шрифта — это шесть свойств, описанных в спецификации CSS, уровень 1, и math_fontfamily для математических шрифтов:
- family: Список имён шрифтов в порядке убывания приоритета. Элементы могут включать общее имя семейства шрифтов, например, 'sans-serif' (по умолчанию), 'serif', 'cursive', 'fantasy' или 'monospace'. В этом случае фактический используемый шрифт будет найден по соответствующему параметру rcParam.
- style: 'normal' (по умолчанию), 'italic' или 'oblique'.
- variant: 'normal' (по умолчанию) или 'small-caps'.
- stretch: Числовое значение в диапазоне от 0 до 1000 или одно из 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal' (по умолчанию), 'semi-expanded', 'expanded', 'extra-expanded' или 'ultra-expanded'.
- weight: Числовое значение в диапазоне от 0 до 1000 или одно из 'ultralight', 'light', 'normal' (по умолчанию), 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'.
- size: Относительное значение 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large' или абсолютный размер шрифта, например, 10 (по умолчанию).
- math_fontfamily: Семейство шрифтов, используемых для рендеринга математического текста; переопределяет
rcParams["mathtext.fontset"](по умолчанию:'dejavusans'). Поддерживаемые значения такие же, как и поддерживаемыеrcParams["mathtext.fontset"](по умолчанию:'dejavusans'): 'dejavusans', 'dejavuserif', 'cm', 'stix', 'stixsans' и 'custom'.
В качестве альтернативы шрифт можно указать, используя абсолютный путь к файлу шрифта, с помощью параметра fname. Однако в этом случае обычно проще просто передать путь (в виде
pathlib.Path, а неstr) в параметр font объектаText.Предпочтительно использовать относительные значения размеров шрифта, например, 'large', вместо абсолютных размеров, например, 12. Этот подход позволяет увеличивать или уменьшать все размеры текста на основе значения размера шрифта по умолчанию.
Этот класс также примет шаблон fontconfig pattern, если он является единственным предоставленным аргументом. Эта поддержка не зависит от fontconfig; мы просто используем его синтаксис шаблонов здесь.
Обратите внимание, что внутренний менеджер шрифтов Matplotlib и fontconfig используют другой алгоритм поиска шрифтов, поэтому результаты одного и того же шаблона могут отличаться в Matplotlib по сравнению с другими приложениями, использующими fontconfig.
- copy()[source]
-
Возвращает копию self.
- get_family()[source]
-
Возвращает список имён шрифтов, составляющих семейство шрифтов.
- 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'
- set_family(family)[source]
-
Изменяет семейство шрифтов. Может быть псевдонимом (общим именем в терминологии CSS), например: 'serif', 'sans-serif', 'cursive', 'fantasy', или 'monospace', реальным именем шрифта или списком реальных имён шрифтов. Реальные имена шрифтов не поддерживаются, когда
rcParams["text.usetex"](по умолчанию:False) равенTrue.
- 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.
- set_size(size)[source]
-
Установить размер шрифта. Либо относительная величина 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', либо абсолютный размер шрифта, например, 12.
- set_slant(style)[source]
-
Установить стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
- set_stretch(stretch)[source]
-
Установить растяжение или ширину шрифта. Доступны значения: 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded' или 'ultra-expanded', или числовое значение в диапазоне 0-1000.
- set_style(style)[source]
-
Установить стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
- set_variant(variant)[source]
-
Установить вариант шрифта. Значения: 'normal' или 'small-caps'.
- set_weight(weight)[source]
-
Установить начертание шрифта. Может быть либо числовым значением в диапазоне 0-1000, либо одним из 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'
- matplotlib.font_manager.afmFontProperty(fontpath, font)[source]
-
Извлечь информацию из файла AFM шрифта.
- Параметры
-
-
font
AFM -
Файл AFM шрифта, из которого будет извлечена информация.
-
font
- Возвращает
-
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 Cascading Style Sheet, Level 1 для описания алгоритма поиска шрифтов.
- matplotlib.font_manager.get_font(filename, hinting_factor=None)[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]
-
Выводит
FontManagerdata в формате JSON в файл с именем filename.См. также
Примечания
Пути к файлам, которые являются потомками пути данных Matplotlib (например, шрифты, поставляемые с Matplotlib), хранятся относительно этого пути к данным (чтобы они оставались действительными в разных виртуальных средах).
Эта функция временно блокирует выходной файл, чтобы предотвратить перезапись вывода разных процессов друг другом.
- 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–2021 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.5.1/api/font_manager_api.html