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.
-
class matplotlib.font_manager.FontEntry(fname='', name='', style='normal', variant='normal', weight='normal', stretch='normal', size='medium')[source] -
Базовый класс:
objectКласс для хранения свойств шрифта. Используется при заполнении словаря поиска шрифтов.
-
class matplotlib.font_manager.FontManager(size=None, weight='normal')[source] -
Базовый класс:
objectПри импорте экземпляр
FontManagerсоздает список TrueType шрифтов, основанных на свойствах шрифта: имя, стиль, вариант, вес, расширение и размер. Методfindfont()выполняет поиск ближайшего соседа для нахождения шрифта, наиболее соответствующего заданным характеристикам. Если подходящий шрифт не найден, возвращается шрифт по умолчанию.-
afmfiles
-
defaultFont
-
findfont(self, prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[source] -
Находит шрифт, наиболее соответствующий заданным свойствам шрифта.
Параметры: -
prop : str or FontProperties -
Свойства шрифта для поиска. Это может быть объект
FontPropertiesили строка, определяющая шаблоны fontconfig. -
fontext : {'ttf', 'afm'}, optional, default: 'ttf' -
Расширение файла шрифта:
- 'ttf': TrueType и OpenType шрифты (.ttf, .ttc, .otf)
- 'afm': Adobe Font Metrics (.afm)
-
directory : str, optional -
Если задано, поиск будет проводиться только в этой директории и её поддиректориях.
-
fallback_to_default : bool -
Если True, произойдёт обращение к семейству шрифтов по умолчанию (обычно "DejaVu Sans" или "Helvetica"), если первый поиск не удался.
-
rebuild_if_missing : bool -
Нужно ли перестроить кэш шрифтов и выполнить поиск заново, если подходящего шрифта не найдено.
Возвращает: -
fontfile : str -
Имя файла наиболее подходящего шрифта.
Примечания
Это выполняет поиск ближайшего соседа. Каждый шрифт получает оценку сходства с целевыми свойствами шрифта. Возвращается первый шрифт с наивысшим баллом. Если не найдены подходящие шрифты, удовлетворяющие определенному порогу, возвращается шрифт по умолчанию (обычно DejaVu Sans).
Результат кэшируется, поэтому последующие запросы не должны выполнять поиск ближайшего соседа O(n).
См. документацию W3C Cascading Style Sheet, Level 1 для описания алгоритма поиска шрифта.
-
-
static get_default_size()[source] -
Возвращает размер шрифта по умолчанию.
-
get_default_weight(self)[source] -
Возвращает вес шрифта по умолчанию.
-
score_family(self, families, family2)[source] -
Возвращает оценку соответствия между списком семейств шрифтов в families и именем семейства шрифтов family2.
Точное совпадение в начале списка возвращает 0.0.
Совпадение в более поздних позициях списка вернет значение между 0 и 1.
Отсутствие соответствия вернет 1.0.
-
score_size(self, size1, size2)[source] -
Возвращает оценку соответствия между size1 и size2.
Если size2 (размер, указанный в файле шрифта) является «масштабируемым», эта функция всегда возвращает 0.0, так как любой размер шрифта может быть сгенерирован.
В противном случае, результатом является абсолютное расстояние между size1 и size2, нормализованное таким образом, что обычный диапазон размеров шрифтов (6pt - 72pt) будет находиться в пределах от 0.0 до 1.0.
-
score_stretch(self, stretch1, stretch2)[source] -
Возвращает оценку соответствия между stretch1 и stretch2.
Результатом является абсолютное значение разницы между числовыми значениями CSS stretch1 и stretch2, нормализованное между 0.0 и 1.0.
-
score_style(self, style1, style2)[source] -
Возвращает оценку соответствия между style1 и style2.
Точное совпадение возвращает 0.0.
Совпадение между 'italic' и 'oblique' возвращает 0.1.
Отсутствие совпадения возвращает 1.0.
-
score_variant(self, variant1, variant2)[source] -
Возвращает оценку соответствия между variant1 и variant2.
Точное совпадение возвращает 0.0, в противном случае 1.0.
-
score_weight(self, weight1, weight2)[source] -
Возвращает оценку соответствия между weight1 и weight2.
Результат равен 0.0, если оба weight1 и weight2 заданы как строки и имеют одинаковое значение.
В противном случае, результатом является абсолютное значение разницы между числовыми значениями CSS weight1 и weight2, нормализованное между 0.05 и 1.0.
-
set_default_weight(self, weight)[source] -
Устанавливает вес шрифта по умолчанию. Начальное значение — 'normal'.
-
ttffiles
-
-
class matplotlib.font_manager.FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None)[source] -
Bases:
objectКласс для хранения и обработки свойств шрифта.
Свойства шрифта описываются в спецификации шрифтов W3C Cascading Style Sheet, Level 1. Шесть свойств:
- family: Список имён шрифтов в порядке убывания приоритета. Элементы могут включать общее название семейства шрифтов, например, 'serif', 'sans-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') или абсолютный размер шрифта, например, 12
Значения по умолчанию для свойств шрифтов TrueType (как указано в параметрах rcParams по умолчанию):
sans-serif, normal, normal, normal, normal, scalable.
Также шрифт можно указать, используя абсолютный путь к файлу .ttf, с помощью аргумента fname.
Рекомендуется использовать относительные значения размера шрифта, например, 'large', вместо абсолютных значений, например, 12. Это позволяет изменять все размеры текста в большем или меньшем масштабе, основываясь на стандартном размере шрифта менеджера шрифтов.
Этот класс также может принимать fontconfig шаблон, если это единственный переданный аргумент. Для этой поддержки не требуется установка fontconfig. Мы просто заимствуем его синтаксис шаблонов для использования здесь.
Обратите внимание, что внутренний менеджер шрифтов Matplotlib и fontconfig используют различный алгоритм поиска шрифтов, поэтому результаты одного и того же шаблона могут отличаться в Matplotlib от других приложений, использующих fontconfig.
-
copy(self)[source] -
Возвращает копию объекта self.
-
get_family(self)[source] -
Возвращает список имён шрифтов, составляющих семейство шрифтов.
-
get_file(self)[source] -
Возвращает имя файла ассоциированного шрифта.
-
get_fontconfig_pattern(self)[source] -
Возвращает подходящий fontconfig шаблон для поиска шрифта, заданного с помощью утилиты fontconfig's
fc-match.Для этой поддержки не требуется установка или поддержка fontconfig. Мы просто заимствуем его синтаксис шаблонов для использования здесь.
-
get_name(self)[source] -
Возвращает имя шрифта, наилучшим образом соответствующего свойствам шрифта.
-
get_size(self)[source] -
Возвращает размер шрифта.
-
get_size_in_points(self)[source]
-
get_slant(self) -
Возвращает стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
-
get_stretch(self)[source] -
Возвращает расширение или ширину шрифта. Доступные значения: 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded'.
-
get_style(self)[source] -
Возвращает стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
-
get_variant(self)[source] -
Возвращает тип шрифта. Значения: 'normal' или 'small-caps'.
-
get_weight(self)[source] -
Устанавливает начертание шрифта. Доступные значения: числовое значение в диапазоне 0-1000 или одно из 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'
-
set_family(self, family)[source] -
Изменяет семейство шрифтов. Может быть псевдонимом (общим именем в терминах CSS), например: 'serif', 'sans-serif', 'cursive', 'fantasy', или 'monospace', реальным именем шрифта или списком реальных имён шрифтов. Реальные имена шрифтов не поддерживаются, когда
text.usetexравноTrue.
-
set_file(self, file)[source] -
Устанавливает имя файла шрифта для использования. В этом случае все другие свойства будут игнорироваться.
-
set_fontconfig_pattern(self, pattern)[source] -
Устанавливает свойства, анализируя fontconfig шаблон.
Для этой поддержки не требуется установка или поддержка fontconfig. Мы просто заимствуем его синтаксис шаблонов для использования здесь.
-
set_name(self, family) -
Изменяет семейство шрифтов. Может быть псевдонимом (общим именем в терминах CSS), например: 'serif', 'sans-serif', 'cursive', 'fantasy', или 'monospace', реальным именем шрифта или списком реальных имён шрифтов. Реальные имена шрифтов не поддерживаются, когда
text.usetexравноTrue.
-
set_size(self, size)[source] -
Устанавливает размер шрифта. Относительное значение ('xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large') или абсолютный размер шрифта, например, 12.
-
set_slant(self, style) -
Устанавливает стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
-
set_stretch(self, stretch)[source] -
Устанавливает расширение или ширину шрифта. Доступные значения: 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded' или 'ultra-expanded', или числовое значение в диапазоне 0-1000.
-
set_style(self, style)[source] -
Устанавливает стиль шрифта. Значения: 'normal', 'italic' или 'oblique'.
-
set_variant(self, variant)[source] -
Устанавливает тип шрифта. Значения: 'normal' или 'small-caps'.
-
set_weight(self, weight)[source] -
Установить вес шрифта. Может быть числовым значением в диапазоне 0-1000 или одним из 'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'
-
-
class matplotlib.font_manager.JSONEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)[source] -
Базы:
json.encoder.JSONEncoderКонструктор для JSONEncoder со разумными значениями по умолчанию.
Если skipkeys ложно, попытка кодирования ключей, которые не являются str, int, float или None, приводит к ошибке TypeError. Если skipkeys истинно, такие элементы просто пропускаются.
Если ensure_ascii истинно, вывод гарантированно будет объектами str со всеми входящими не-ASCII символами, закодированными в виде escape-последовательностей. Если ensure_ascii ложно, вывод может содержать не-ASCII символы.
Если check_circular истинно, списки, словари и объекты с пользовательским кодированием будут проверяться на циклические ссылки во время кодирования для предотвращения бесконечной рекурсии (что вызвало бы ошибку OverflowError). В противном случае такая проверка не выполняется.
Если allow_nan истинно, NaN, Infinity и -Infinity будут закодированы как таковые. Это поведение не соответствует спецификации JSON, но согласуется с большинством JavaScript-оболочек кодирования и декодирования. В противном случае кодирование таких чисел с плавающей точкой вызовет ошибку ValueError.
Если sort_keys истинно, вывод словарей будет отсортирован по ключу; это полезно для регрессионных тестов, чтобы гарантировать, что JSON-сериализации можно сравнивать изо дня в день.
Если indent — целое число больше или равно нулю, элементы массива JSON и члены объекта будут красиво напечатаны с указанным уровнем вдавливания. Уровень вдавливания 0 вставит только новые строки. None — самая компактная форма представления.
Если указано, separators должен быть кортежем (item_separator, key_separator). По умолчанию — (', ', ': ') если indent —
Noneи (',', ': ') в противном случае. Чтобы получить самое компактное представление JSON, нужно указать (',', ':') для исключения пробелов.Если указано, default — функция, которая вызывается для объектов, которые нельзя сериализовать другим способом. Она должна возвращать JSON-сериализуемую версию объекта или генерировать
TypeError.-
default(self, o)[source] -
Реализуйте этот метод в подклассе таким образом, чтобы он возвращал сериализуемый объект для
o, или вызывал базовый метод (чтобы сгенерироватьTypeError).Например, для поддержки произвольных итераторов, можно реализовать default так:
def default(self, o): try: iterable = iter(o) except TypeError: pass else: return list(iterable) # Let the base class default method raise the TypeError return JSONEncoder.default(self, o)
-
-
matplotlib.font_manager.OSXInstalledFonts(directories=None, fontext='ttf')[source] -
[Устарело] Получить список файлов шрифтов в OS X.
Примечания
Устарело начиная с версии 3.1.
-
class matplotlib.font_manager.TempCache(**kwargs)[source] -
Базы:
object[Устарело] Класс для хранения временных кэшей, которые (а) не сохраняются на диск и (б) инвалидируются всякий раз, когда меняются определенные параметры шрифтов rcParams — а именно, списки поиска семейств шрифтов — или кэш шрифтов перезагружается. Это позволяет избежать дорогостоящего линейного поиска по всем шрифтам каждый раз, когда ищется шрифт.
Примечания
Устарело начиная с версии 3.0.
-
get(self, prop)[source]
-
invalidating_rcparams = ('font.serif', 'font.sans-serif', 'font.cursive', 'font.fantasy', 'font.monospace')
-
make_rcparams_key(self)[source]
-
set(self, prop, value)[source]
-
-
matplotlib.font_manager.afmFontProperty(fontpath, font)[source] -
Извлечение информации из файла шрифта AFM.
Параметры: -
font : AFM -
Файл шрифта AFM, из которого извлекается информация.
Возвращает: -
FontEntry -
Извлечённые свойства шрифта.
-
-
matplotlib.font_manager.createFontList(fontfiles, fontext='ttf')[source] -
Функция создания списка шрифтов. По умолчанию создаётся список TrueType шрифтов. Также опционально может создаваться список AFM шрифтов.
-
matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')[source] -
Поиск шрифтов в указанных путях шрифтов. Если пути не заданы, используется стандартный набор системных путей, а также список шрифтов, отслеживаемых fontconfig, если fontconfig установлен и доступен. По умолчанию возвращается список TrueType шрифтов, с возможностью получения списка AFM шрифтов.
-
matplotlib.font_manager.get_font(filename, hinting_factor=None)[source]
-
matplotlib.font_manager.get_fontconfig_fonts(fontext='ttf')[source] -
Список имен файлов шрифтов, известных
fc-listс заданным расширением.
-
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] -
Сохраняет структуру данных в формате JSON в указанный файл.
Обрабатывает FontManager и его поля. Пути к файлам, которые являются дочерними по отношению к пути данных Matplotlib (обычно, шрифты, поставляемые с Matplotlib), хранятся относительно этого пути данных (чтобы оставаться действительными в различных виртуальных средах).
-
matplotlib.font_manager.json_load(filename)[source] -
Загружает структуру данных в формате JSON из указанного файла.
Обрабатывает FontManager и его поля. Относительные пути к файлам интерпретируются как относительные к пути данных Matplotlib и преобразуются в абсолютные пути.
-
matplotlib.font_manager.list_fonts(directory, extensions)[source] -
Возвращает список всех шрифтов, соответствующих любому из расширений, найденных рекурсивно в указанной директории.
-
matplotlib.font_manager.ttfFontProperty(font)[source] -
Извлечение информации из файла TrueType шрифта.
Параметры: -
font : FT2Font -
Файл TrueType шрифта, из которого извлекается информация.
Возвращает: -
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'.
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.1.1/api/font_manager_api.html