matplotlib.font_manager

用于跨平台查找、管理和使用字体的模块。

此模块提供一个 FontManager 可以跨后端和平台共享的实例。这个 findfont 函数返回本地或系统字体路径中与指定字体匹配的最佳TrueType(TTF)字体文件 FontProperties 实例。这个 FontManager 还处理Adobe字体度量(AFM)字体文件供PostScript后端使用。

设计基于 W3C Cascading Style Sheet, Level 1 (CSS1) font specification . 未来版本可能会实施2级或2.1级规范。

class matplotlib.font_manager.FontEntry(fname='', name='', style='normal', variant='normal', weight='normal', stretch='normal', size='medium')[源代码]

基类:object

用于存储字体属性的类。在填充字体查找字典时使用。

class matplotlib.font_manager.FontManager(size=None, weight='normal')[源代码]

基类:object

关于进口 FontManager singleton实例创建ttf和afm字体的列表并缓存它们的字体 FontProperties . 这个 FontManager.findfont 方法执行最近邻搜索以查找与规范最接近的字体。如果没有找到足够好的匹配,则返回默认字体。

addfont(path)[源代码]

将字体的属性缓存在 path 使它对 FontManager . 字体类型是从路径后缀推断出来的。

参数:
pathstr或path-like
property defaultFont
findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)[源代码]

查找与给定字体属性最匹配的字体。

参数:
prop STR或 FontPropertiesstr或

要搜索的字体属性。这可以是 FontProperties object or a string defining a fontconfig patterns .

fontext{'ttf','afm},默认值:'ttf'

字体文件的扩展名:

  • “ttf”:TrueType和OpenType字体(.ttf、.ttc、.otf)
  • “afm”:Adobe字体度量(.afm)
directory可选的STR

如果给定,则仅搜索此目录及其子目录。

fallback_to_default布尔

如果为True,则在第一次硬查找失败时将回退到默认字体系列(通常为“DejaVu Sans”或“Helvetica”)。

rebuild_if_missing布尔

如果第一个匹配项指向不存在的字体(即字体缓存包含过时的条目),是否重建字体缓存并再次搜索。

返回:
STR

最佳匹配字体的文件名。

笔记

这将执行最近邻搜索。每个字体都被赋予目标字体属性的相似性分数。返回得分最高的第一个字体。如果没有找到低于某个阈值的匹配项,则返回默认字体(通常是DejaVu Sans)。

结果被缓存,因此后续查找不必执行O(N)最近邻搜索。

W3C Cascading Style Sheet, Level 1 有关字体查找算法说明的文档。

static get_default_size()[源代码]

返回默认字体大小。

get_default_weight()[源代码]

返回默认字体粗细。

score_family(families, family2)[源代码]

返回中字体系列列表之间的匹配分数 家庭 字体系列名称 家族2 .

列表头的精确匹配返回0.0。

列表下方的匹配将返回0和1之间。

没有匹配将返回1.0。

score_size(size1, size2)[源代码]

返回一个匹配分数 SiZE1SiZE2 .

如果 SiZE2 (字体文件中指定的大小)为“scalable”,此函数始终返回0.0,因为可以生成任何字体大小。

否则,结果是 SiZE1SiZE2 ,使字体大小的常规范围(6pt-72pt)介于0.0和1.0之间。

score_stretch(stretch1, stretch2)[源代码]

返回一个匹配分数 拉伸1拉伸2 .

结果是CSS数值差的绝对值 拉伸1拉伸2 ,标准化在0.0和1.0之间。

score_style(style1, style2)[源代码]

返回一个匹配分数 风格1风格2 .

精确匹配返回0.0。

“italic”和“oblique”之间的匹配返回0.1。

no match返回1.0。

score_variant(variant1, variant2)[源代码]

返回一个匹配分数 变异1变异2 .

精确匹配返回0.0,否则返回1.0。

score_weight(weight1, weight2)[源代码]

返回一个匹配分数 体重1体重2 .

如果将weight1和weight 2都作为字符串给出并具有相同的值,则结果为0.0。

否则,结果是 体重1体重2 ,标准化在0.05和1.0之间。

set_default_weight(weight)[源代码]

设置默认字体粗细。初始值为“Normal”。

class matplotlib.font_manager.FontProperties(family=None, style=None, variant=None, weight=None, stretch=None, size=None, fname=None)[源代码]

基类:object

用于存储和操作字体属性的类。

字体属性是 W3C Cascading Style Sheet, Level 1 字体规格。这六个属性是:

  • 系列:按优先级降序排列的字体名称列表。这些项目可能包括通用字体系列名称,如“serif”、“sans-serif”、“cursive”、“fantasy”或“monospace”。在这种情况下,将从关联的rcparam中查找要使用的实际字体。
  • 样式:“Normal”、“Italic”或“Oblique”。
  • 变体:要么是“普通”要么是“小大写”。
  • 拉伸:0-1000范围内的数值,或“超浓缩”、“超浓缩”、“浓缩”、“半浓缩”、“普通”、“半膨胀”、“展开”、“超膨胀”或“超膨胀”之一。
  • weight:0-1000范围内的数值,或“ultralight”、“light”、“normal”、“regular”、“book”、“medium”、“roman”、“semibold”、“demibold”、“demi”、“粗体”、“heavy”、“extra-bold”、“black”之一。
  • 大小:相对值“xx small”、“x-small”、“small”、“medium”、“large”、“x-large”、“xx-large”或绝对字体大小,例如12。

TrueType字体的默认字体属性(在默认rcParams中指定)是:

sans-serif, normal, normal, normal, normal, scalable.

或者,可以使用字体文件的绝对路径,通过使用 文件名 夸格。但是,在这种情况下,只传递路径(作为 pathlib.Path ,不是 strfont 夸克 Text 对象。

字体大小的首选用法是使用相对值,例如“大”,而不是绝对字体大小,例如12。这种方法允许根据字体管理器的默认字体大小来增大或减小所有文本大小。

本课程还将接受 fontconfig 模式,如果它是唯一提供的参数。这种支持并不依赖于fontconfig;我们只是借用它的模式语法来使用它。

请注意,matplotlib的内部字体管理器和fontconfig使用不同的算法查找字体,因此matplotlib中相同模式的结果可能与使用fontconfig的其他应用程序中的结果不同。

copy()[源代码]

返回self的副本。

get_family()[源代码]

返回组成字体系列的字体名称列表。

get_file()[源代码]

返回关联字体的文件名。

get_fontconfig_pattern()[源代码]

得到一个 fontconfig 适合查找用fontconfig指定的字体的模式 fc-match 实用工具。

这种支持并不依赖于fontconfig;我们只是借用它的模式语法来使用它。

get_name()[源代码]

返回最匹配字体属性的字体名称。

get_size()[源代码]

返回字体大小。

get_size_in_points()[源代码]
get_slant()

返回字体样式。值为:“Normal”、“Italic”或“Oblique”。

get_stretch()[源代码]

返回字体拉伸或宽度。选项有:“超浓缩”、“超浓缩”、“浓缩”、“半浓缩”、“正常”、“半膨胀”、“膨胀”、“超膨胀”、“超膨胀”。

get_style()[源代码]

返回字体样式。值为:“Normal”、“Italic”或“Oblique”。

get_variant()[源代码]

返回字体变量。值为:“Normal”或“Small Caps”。

get_weight()[源代码]

设置字体粗细。选项包括:0-1000范围内的数值,或'light'、'normal'、'regular'、'book'、'medium'、'roman'、'semibold'、'demi bold'、'demi'、'bold'、'heavy'、'extra bold'、'black'之一。

set_family(family)[源代码]

更改字体系列。可能是别名(通用名是css的说法),例如:“serif”、“sans-serif”、“cursive”、“fantasy”或“monospace”、真实字体名或真实字体名列表。当 rcParams["text.usetex"] (default: False) 是 True .

set_file(file)[源代码]

设置要使用的字体文件的文件名。在这种情况下,将忽略所有其他属性。

set_fontconfig_pattern(pattern)[源代码]

通过分析 fontconfig 模式 .

这种支持并不依赖于fontconfig;我们只是借用它的模式语法来使用它。

set_name(family)

更改字体系列。可能是别名(通用名是css的说法),例如:“serif”、“sans-serif”、“cursive”、“fantasy”或“monospace”、真实字体名或真实字体名列表。当 rcParams["text.usetex"] (default: False) 是 True .

set_size(size)[源代码]

设置字体大小。“x x-small”、“x-small”、“small”、“medium”、“large”、“x-large”、“x x-large”的相对值或绝对字体大小,例如12。

set_slant(style)

设置字体样式。值为:“Normal”、“Italic”或“Oblique”。

set_stretch(stretch)[源代码]

设置字体拉伸或宽度。选项包括:“超压缩”、“超压缩”、“压缩”、“半压缩”、“普通”、“半扩展”、“扩展”、“超扩展”或“超扩展”,或0-1000范围内的数值。

set_style(style)[源代码]

设置字体样式。值为:“Normal”、“Italic”或“Oblique”。

set_variant(variant)[源代码]

设置字体变量。值为:“Normal”或“Small Caps”。

set_weight(weight)[源代码]

设置字体粗细。可以是0-1000范围内的数值,也可以是“超轻”、“轻”、“普通”、“常规”、“书籍”、“中等”、“罗马”、“半粗体”、“半粗体”、“半粗体”、“粗体”、“重体”、“超粗体”、“黑色”之一。

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)[源代码]

基类:matplotlib.font_manager._JSONEncoder

[Deprecated]

笔记

3.2 版后已移除:

jsonEncoder的构造函数,具有合理的默认值。

如果skipkeys为false,则尝试对非str、int、float或none的键进行编码是一个类型错误。如果skipkeys为真,则只跳过这些项。

如果确保_ASCII为真,则输出将被保证为str对象,并对所有传入的非ASCII字符进行转义。如果确保_ASCII为假,则输出可以包含非ASCII字符。

如果check_circular为true,则在编码期间将检查列表、dict和自定义编码对象的循环引用,以防止无限递归(这将导致溢出错误)。否则,不进行此类检查。

如果allow_Nan为真,则Nan、Infinity和-Infinity将被编码为这样。此行为不符合JSON规范,但与大多数基于JavaScript的编码器和解码器一致。否则,对此类浮点数进行编码将是一个值错误。

如果sort_keys为true,那么字典的输出将按key排序;这对于回归测试很有用,以确保可以每天比较JSON序列化。

如果indent是非负整数,那么json数组元素和对象成员将以该indent级别完美打印。0的缩进级别将只插入换行符。“无”是最紧凑的表示形式。

如果指定了分隔符,则分隔符应该是(item_separator,key_separator)元组。如果 缩进None 和(“,”,“:”)否则。要获得最紧凑的JSON表示,应该指定(“,”,“:”)以消除空白。

如果指定,则默认值是一个函数,该函数将为无法序列化的对象调用。它应该返回对象的JSON可编码版本或引发 TypeError .

matplotlib.font_manager.afmFontProperty(fontpath, font)[源代码]

从AFM字体文件中提取信息。

参数:
fontAFMAFM

从中提取信息的AFM字体文件。

返回:
FontEntry

提取的字体属性。

matplotlib.font_manager.createFontList(fontfiles, fontext='ttf')[源代码]

[Deprecated] 创建字体查找列表。默认设置是创建TrueType字体列表。可以选择创建AFM字体列表。

笔记

3.2 版后已移除.

matplotlib.font_manager.findSystemFonts(fontpaths=None, fontext='ttf')[源代码]

在指定的字体路径中搜索字体。如果没有指定路径,则将使用标准的系统路径集,以及fontconfig跟踪的字体列表(如果fontconfig已安装并可用)。默认情况下,返回TrueType字体列表,并将AFM字体作为选项。

matplotlib.font_manager.findfont(prop, fontext='ttf', directory=None, fallback_to_default=True, rebuild_if_missing=True)

查找与给定字体属性最匹配的字体。

参数:
prop STR或 FontPropertiesstr或

要搜索的字体属性。这可以是 FontProperties object or a string defining a fontconfig patterns .

fontext{'ttf','afm},默认值:'ttf'

字体文件的扩展名:

  • “ttf”:TrueType和OpenType字体(.ttf、.ttc、.otf)
  • “afm”:Adobe字体度量(.afm)
directory可选的STR

如果给定,则仅搜索此目录及其子目录。

fallback_to_default布尔

如果为True,则在第一次硬查找失败时将回退到默认字体系列(通常为“DejaVu Sans”或“Helvetica”)。

rebuild_if_missing布尔

如果第一个匹配项指向不存在的字体(即字体缓存包含过时的条目),是否重建字体缓存并再次搜索。

返回:
STR

最佳匹配字体的文件名。

笔记

这将执行最近邻搜索。每个字体都被赋予目标字体属性的相似性分数。返回得分最高的第一个字体。如果没有找到低于某个阈值的匹配项,则返回默认字体(通常是DejaVu Sans)。

结果被缓存,因此后续查找不必执行O(N)最近邻搜索。

W3C Cascading Style Sheet, Level 1 有关字体查找算法说明的文档。

matplotlib.font_manager.get_font(filename, hinting_factor=None)[源代码]
matplotlib.font_manager.get_fontconfig_fonts(fontext='ttf')[源代码]

列出已知的字体文件名 fc-list 具有给定的扩展名。

matplotlib.font_manager.get_fontext_synonyms(fontext)[源代码]

返回作为给定文件扩展名同义词的文件扩展名列表 文件外文 .

matplotlib.font_manager.is_opentype_cff_font(filename)[源代码]

返回给定字体是否是嵌入OpenType包装中的Postscript压缩字体格式字体。由PostScript和PDF后端使用,这些后端不能将这些字体子集化。

matplotlib.font_manager.json_dump(data, filename)[源代码]

Dump FontManager data as JSON to the file named filename.

参见

json_load

笔记

作为Matplotlib数据路径(通常是Matplotlib附带的字体)的子路径相对于该数据路径存储(在virtualenvs中保持有效)。

此函数暂时锁定输出文件,以防止多个进程相互覆盖输出。

matplotlib.font_manager.json_load(filename)[源代码]

加载A FontManager 从名为 文件名 .

参见

json_dump
matplotlib.font_manager.list_fonts(directory, extensions)[源代码]

返回目录下递归找到的所有与扩展名匹配的字体的列表。

matplotlib.font_manager.ttfFontProperty(font)[源代码]

从TrueType字体文件中提取信息。

参数:
fontFT2FontFT2字体

从中提取信息的TrueType字体文件。

返回:
FontEntry

提取的字体属性。

matplotlib.font_manager.win32FontDirectory()[源代码]

返回用户为Win32指定的字体目录。这是从注册表项中查找的:

\\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Fonts

如果找不到钥匙, %WINDIR%\Fonts 将被退回。

matplotlib.font_manager.win32InstalledFonts(directory=None, fontext='ttf')[源代码]

在指定的字体目录中搜索字体,如果没有指定,则使用系统目录。此外,还会搜索安装的用户字体。默认情况下,将返回TrueType字体文件名的列表,如果 字体文字 =‘AFM’。