matplotlib.font_manager
Модуль для поиска, управления и использования шрифтов на разных платформах.
Этот модуль предоставляет единственный экземпляр FontManager, fontManager, который может быть использован в разных бэкендах и на разных платформах. Функция findfont возвращает лучший файл шрифта TrueType (TTF) в локальном или системном пути шрифтов, который соответствует указанному экземпляру FontProperties. Экземпляр FontManager также обрабатывает файлы шрифтов Adobe Font Metrics (AFM) для использования PostScript бэкендом. Функция FontManager.addfont добавляет пользовательский шрифт из файла без его установки в операционной системе.
Дизайн основан на спецификации шрифтов W3C Cascading Style Sheet, Level 1 (CSS1). Будущие версии могут реализовать спецификации Level 2 или 2.1.
- classmatplotlib.font_manager.FontManager(size=None, weight='normal')[source]
-
Базы:
objectПри импорте, синглтон-экземпляр
FontManagerсоздает список шрифтов ttf и afm и кэширует ихFontProperties. МетодFontManager.findfontвыполняет поиск ближайшего соседа, чтобы найти шрифт, наиболее точно соответствующий заданию. Если подходящего совпадения не найдено, возвращается шрифт по умолчанию.Шрифты, добавленные с помощью метода
FontManager.addfont, не сохраняются в кэше; поэтому,addfontнеобходимо вызывать каждый раз при импорте Matplotlib. Этот метод следует использовать только в том случае, если шрифт не может быть установлен на вашей операционной системе другими способами.Примечания
Метод
FontManager.addfontдолжен вызываться на глобальном экземпляреFontManager.Пример использования:
import matplotlib.pyplot as plt from matplotlib import font_manager font_dirs = ["/resources/fonts"] # The path to the custom font file. font_files = font_manager.findSystemFonts(fontpaths=font_dirs) for font_file in font_files: font_manager.fontManager.addfont(font_file)- addfont(path)[source]
-
Кэшировать свойства шрифта по пути path, чтобы сделать его доступным для
FontManager. Тип шрифта определяется по расширению пути.- Параметры:
-
- pathstr или путь-подобный объект
Примечания
Этот метод полезен для добавления пользовательского шрифта без его установки в вашей операционной системе. Обратитесь к экземпляру синглтона
FontManagerдля использования и замечаний по этому методу.
- 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]
-
Основы:
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, подходящий для поиска шрифта, как указано с помощью утилиты
fc-matchfontconfig.Эта поддержка не зависит от 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.
- Параметры:
-
- fontpathstr
-
Имя файла, соответствующего font.
- 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]
-
Поиск пути к файлу шрифта, наиболее точно соответствующему заданным свойствам шрифта.
- Параметры:
-
-
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(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]
-
Сохраняет данные
FontManagerв формате 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.
- Parameters:
-
-
font
FT2Font -
Файл шрифта TrueType, из которого будет извлечена информация.
-
font
- Returns:
-
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='', name='', style='normal', variant='normal', weight='normal', stretch='normal', size='medium')[source]
-
Класс для хранения свойств шрифта.
Используется при заполнении словаря поиска шрифтов.
© 2012–2023 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/stable/api/font_manager_api.html