matplotlib.font_manager#

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

这个模块提供了一个单一的FontManager实例,fontManager可以跨后端和​​平台共享。该findfont 函数返回本地或系统字体路径中与指定FontProperties 实例匹配的最佳 TrueType (TTF) 字体文件。FontManager它还处理供 PostScript 后端使用的 Adob​​e Font Metrics (AFM) 字体文件。

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

matplotlib.font_manager。FontManager ( size = None , weight = 'normal' ) [source] #

基地:object

导入时,FontManager单例实例创建一个 ttf 和 afm 字体列表并缓存它们的FontProperties. 该FontManager.findfont 方法进行最近邻搜索以找到与规范最匹配的字体。如果没有找到足够好的匹配,则返回默认字体。

addfont ( path ) [source] #

将字体的属性缓存在path以使其可用于 FontManager. 字体类型是从路径后缀推断出来的。

参数
路径str 或类似路径
属性 defaultFont #
findfont ( prop , fontext = 'ttf' , directory = None , fallback_to_default = True , rebuild_if_missing = True ) [source] #

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

参数
道具str 或FontProperties

要搜索的字体属性。这可以是 FontProperties定义 fontconfig 模式的对象或字符串。

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

字体文件的扩展名:

  • 'ttf':TrueType 和 OpenType 字体(.ttf、.ttc、.otf)

  • “afm”:Adobe 字体度量 (.afm)

目录str,可选

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

fallback_to_default布尔值

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

rebuild_if_missing布尔值

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

返回
字符串

最佳匹配字体的文件名。

笔记

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

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

有关字体查找算法的描述,请参阅W3C Cascading Style Sheet, Level 1文档。

静态 get_default_size ( ) [来源] #

返回默认字体大小。

get_default_weight ( ) [来源] #

返回默认字体粗细。

get_font_names ( ) [来源] #

返回可用字体列表。

score_family ( family , family2 ) [来源] #

返回系列中的字体系列列表与字体系列名称family2之间的匹配分数 。

列表头部的完全匹配返回 0.0。

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

没有匹配将返回 1.0。

score_size ( size1 , size2 ) [来源] #

返回size1size2之间的匹配分数。

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

否则,结果是size1size2之间的绝对距离,标准化后通常的字体大小范围(6pt - 72pt)将位于 0.0 和 1.0 之间。

score_stretch ( stretch1 , stretch2 ) [来源] #

返回stretch1stretch2之间的匹配分数。

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

score_style ( style1 , style2 ) [来源] #

返回style1style2之间的匹配分数。

完全匹配返回 0.0。

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

没有匹配返回 1.0。

score_variant ( variant1 , variant2 ) [来源] #

返回variant1variant2之间的匹配分数。

完全匹配返回 0.0,否则返回 1.0。

score_weight ( weight1 , weight2 ) [来源] #

返回weight1weight2之间的匹配分数。

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

否则,结果是weight1weight2的 CSS 数值之差的绝对值,在 0.05 和 1.0 之间标准化。

set_default_weight (重量) [来源] #

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

matplotlib.font_manager。FontProperties ( family = None , style = None , variant = None , weight = None , stretch = None , size = None , fname = None , math_fontfamily = None ) [来源] #

基地:object

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

字体属性是 W3C 级联样式表、1 级字体规范和数学字体的math_fontfamily中描述的六个属性:

  • family:按优先级降序排列的字体名称列表。这些项目可能包括通用字体系列名称,“sans-serif”、“serif”、“cursive”、“fantasy”或“monospace”。在这种情况下,要使用的实际字体将在findfont. 默认值:(rcParams["font.family"]默认值['sans-serif']:)

  • 样式:“正常”、“斜体”或“倾斜”。默认值:(rcParams["font.style"]默认值'normal':)

  • 变体:“正常”或“小型股”。默认值:(rcParams["font.variant"]默认值'normal':)

  • 拉伸:0-1000 范围内的数值或“超压缩”、“超压缩”、“压缩”、“半压缩”、“正常”、“半扩展”、“扩展”之一, “超扩展”或“超扩展”。默认值:(rcParams["font.stretch"]默认值'normal':)

  • 重量:0-1000 范围内的数值或“超轻”、“轻”、“正常”、“常规”、“书”、“中”、“罗马”、“半粗体”、“半粗体”、 'demi'、'bold'、'heavy'、'extra bold'、'black'。默认值:(rcParams["font.weight"]默认值'normal':)

  • 大小:'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 kwarg使用字体文件的绝对路径来指定字体。pathlib.Path但是,在这种情况下,将路径(作为 a ,而不是 a str)传递给对象的 font kwarg通常更简单Text

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

如果它是提供的唯一参数,则此类还将接受fontconfig 模式。这种支持不依赖于 fontconfig;我们只是借用它的模式语法在这里使用。

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

复制( ) [来源] #

返回 self 的副本。

get_family ( ) [来源] #

返回单个字体系列名称或通用系列名称的列表。

字体系列或通用字体系列(将在搜索匹配字体时从它们各自的 rcParams 中解析)按优先顺序排列。

get_file ( ) [来源] #

返回相关字体的文件名。

get_fontconfig_pattern ( ) [来源] #

获取适合查找使用 fontconfig实用程序指定的字体的fontconfig 模式。fc-match

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

get_math_fontfamily ( ) [来源] #

返回用于数学文本的字体系列的名称。

默认字体为rcParams["mathtext.fontset"](默认:'dejavusans')。

get_name ( ) [来源] #

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

get_size ( ) [来源] #

返回字体大小。

get_size_in_points ( ) [来源] #

返回字体大小。

get_slant ( ) [来源] #

返回字体样式。值为:“正常”、“斜体”或“倾斜”。

get_stretch ( ) [来源] #

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

get_style ( ) [来源] #

返回字体样式。值为:“正常”、“斜体”或“倾斜”。

get_variant ( ) [来源] #

返回字体变体。值为:“正常”或“小型股”。

get_weight ( ) [来源] #

设置字体粗细。选项是: 0-1000 范围内的数值或“light”、“normal”、“regular”、“book”、“medium”、“roman”、“semibold”、“demibold”、“demi”之一、“粗体”、“粗体”、“超粗体”、“黑色”

set_family ( family ) [来源] #

更改字体系列。可以是别名(通用名称是 CSS 用语),例如:'serif'、'sans-serif'、'cursive'、'fantasy' 或 'monospace'、真实字体名称或真实字体名称列表. rcParams["text.usetex"]当(默认值False:)为 时,不支持真实字体名称 True。默认值:(rcParams["font.family"]默认值['sans-serif']:)

set_file (文件) [来源] #

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

set_fontconfig_pattern (模式) [来源] #

通过解析fontconfig 模式来设置属性。

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

set_math_fontfamily ( fontfamily ) [来源] #

在数学模式下设置文本的字体系列。

如果没有明确设置,rcParams["mathtext.fontset"](默认值:)'dejavusans'将被使用。

参数
字体家族str

字体系列的名称。

可用字体系列在此处的 matplotlibrc.template 文件中定义

set_name ( family ) [来源] #

更改字体系列。可以是别名(通用名称是 CSS 用语),例如:'serif'、'sans-serif'、'cursive'、'fantasy' 或 'monospace'、真实字体名称或真实字体名称列表. rcParams["text.usetex"]当(默认值False:)为 时,不支持真实字体名称 True。默认值:(rcParams["font.family"]默认值['sans-serif']:)

set_size (大小) [来源] #

设置字体大小。

参数
size float 或 {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'},默认值:(rcParams["font.size"]默认值10.0:)

如果是浮点数,则以磅为单位的字体大小。字符串值表示相对于默认字体大小的大小。

set_slant (风格) [来源] #

设置字体样式。

参数
样式{'normal', 'italic', 'oblique'},默认值:(rcParams["font.style"]默认值'normal':)
set_stretch (拉伸) [来源] #

设置字体拉伸或宽度。

参数
拉伸int 或 {'超压缩'、'超压缩'、'压缩'、'半压缩'、'正常'、'半扩展'、'扩展'、'超扩展'、'超扩展'},默认值:(rcParams["font.stretch"]默认值'normal':)

如果是 int,则必须在 0-1000 范围内。

set_style (风格) [来源] #

设置字体样式。

参数
样式{'normal', 'italic', 'oblique'},默认值:(rcParams["font.style"]默认值'normal':)
set_variant (变体) [来源] #

设置字体变体。

参数
变体{'normal', 'small-caps'},默认值:(rcParams["font.variant"]默认值'normal':)
set_weight (重量) [来源] #

设置字体粗细。

参数
weight int 或 {'ultralight'、'light'、'normal'、'regular'、'book'、'medium'、'roman'、'semibold'、'demibold'、'demi'、'bold'、'heavy ', '加粗', '黑色'}, 默认: rcParams["font.weight"](默认: 'normal')

如果是 int,则必须在 0-1000 范围内。

matplotlib.font_manager。afmFontProperty ( fontpath , font ) [来源] #

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

参数
字体AFM

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

返回
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] #

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

参数
道具str 或FontProperties

要搜索的字体属性。这可以是 FontProperties定义 fontconfig 模式的对象或字符串。

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

字体文件的扩展名:

  • 'ttf':TrueType 和 OpenType 字体(.ttf、.ttc、.otf)

  • “afm”:Adobe 字体度量 (.afm)

目录str,可选

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

fallback_to_default布尔值

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

rebuild_if_missing布尔值

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

返回
字符串

最佳匹配字体的文件名。

笔记

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

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

有关字体查找算法的描述,请参阅W3C Cascading Style Sheet, Level 1文档。

matplotlib.font_manager。get_font ( font_filepaths , hinting_factor = None ) [source] #

获取ft2font.FT2Font给定文件路径列表的对象。

参数
font_filepaths Iterable[str, Path, bytes], str, Path, bytes

要使用的字体文件的相对或绝对路径。

如果是单个字符串、字节或pathlib.Path,那么它将被视为仅包含该条目的列表。

如果传递了多个文件路径,则返回的 FT2Font 对象将按照给定的顺序回退到字体中,以找到所需的字形。

返回
ft2font.FT2Font
matplotlib.font_manager。get_font_names ( ) [来源] #

返回可用字体列表。

matplotlib.font_manager。get_fontconfig_fonts ( fontext = 'ttf' ) [来源] #

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

笔记

自 3.5 版起已弃用。

matplotlib.font_manager。get_fontext_synonyms ( fontext ) [来源] #

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

matplotlib.font_manager。is_opentype_cff_font (文件名) [来源] #

返回给定字体是否是嵌入在 OpenType 包装器中的 Postscript Compact Font Format 字体。由不能子集这些字体的 PostScript 和 PDF 后端使用。

matplotlib.font_manager。json_dump (数据,文件名) [来源] #

将数据作为 JSON转储到名为filename的文件中。FontManager

也可以看看

json_load

笔记

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

此功能临时锁定输出文件,以防止多个进程覆盖彼此的输出。

matplotlib.font_manager。json_load (文件名) [来源] #

FontManager从名为filename的 JSON 文件加载一个。

也可以看看

json_dump
matplotlib.font_manager。list_fonts (目录,扩展) [来源] #

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

matplotlib.font_manager。ttfFontProperty (字体) [来源] #

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

参数
字体FT2Font

将从中提取信息的 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' ) [source] #

[弃用] 在指定的字体目录中搜索字体,如果没有给出,则使用系统目录。此外,还会搜索已安装的用户字体。默认情况下返回 TrueType 字体文件名列表,如果fontext == 'afm' 则返回 AFM 字体。

笔记

自 3.5 版起已弃用。

matplotlib.font_manager。FontEntryfname str = '' 名称str = '' 样式str = 'normal' 变体str = 'normal' 重量str = 'normal' 拉伸str = 'normal' 大小str = '中等' ) #

用于存储字体属性的类。

它在填充字体查找字典时使用。