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或
FontProperties
str或 要搜索的字体属性。这可以是
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 有关字体查找算法说明的文档。
- prop STR或
-
score_family
(families, family2)[源代码]¶ 返回中字体系列列表之间的匹配分数 家庭 字体系列名称 家族2 .
列表头的精确匹配返回0.0。
列表下方的匹配将返回0和1之间。
没有匹配将返回1.0。
-
score_size
(size1, size2)[源代码]¶ 返回一个匹配分数 SiZE1 和 SiZE2 .
如果 SiZE2 (字体文件中指定的大小)为“scalable”,此函数始终返回0.0,因为可以生成任何字体大小。
否则,结果是 SiZE1 和 SiZE2 ,使字体大小的常规范围(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。
-
-
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
,不是str
) font 夸克Text
对象。字体大小的首选用法是使用相对值,例如“大”,而不是绝对字体大小,例如12。这种方法允许根据字体管理器的默认字体大小来增大或减小所有文本大小。
本课程还将接受 fontconfig 模式,如果它是唯一提供的参数。这种支持并不依赖于fontconfig;我们只是借用它的模式语法来使用它。
请注意,matplotlib的内部字体管理器和fontconfig使用不同的算法查找字体,因此matplotlib中相同模式的结果可能与使用fontconfig的其他应用程序中的结果不同。
-
get_fontconfig_pattern
()[源代码]¶ 得到一个 fontconfig 适合查找用fontconfig指定的字体的模式
fc-match
实用工具。这种支持并不依赖于fontconfig;我们只是借用它的模式语法来使用它。
-
get_slant
()¶ 返回字体样式。值为:“Normal”、“Italic”或“Oblique”。
-
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_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”。
-
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字体文件中提取信息。
参数: 返回: 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或
FontProperties
str或 要搜索的字体属性。这可以是
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 有关字体查找算法说明的文档。
- prop STR或
-
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.参见
笔记
作为Matplotlib数据路径(通常是Matplotlib附带的字体)的子路径相对于该数据路径存储(在virtualenvs中保持有效)。
此函数暂时锁定输出文件,以防止多个进程相互覆盖输出。
-
matplotlib.font_manager.
json_load
(filename)[源代码]¶ 加载A
FontManager
从名为 文件名 .参见
-
matplotlib.font_manager.
ttfFontProperty
(font)[源代码]¶ 从TrueType字体文件中提取信息。
参数: - font :
FT2Font
FT2字体 从中提取信息的TrueType字体文件。
返回: FontEntry
提取的字体属性。
- font :