带有非拉丁字形的文本

带有非拉丁字形的文本#

自 v2.0 版本起,默认字体 DejaVu 包含许多西方字母的字形,但不包括其他脚本,如中文、韩文或日文。

要将默认字体设置为支持所需代码点的字体,请在 'font.family' (推荐)或所需别名列表前添加字体名称。

import matplotlib

matplotlib.rcParams['font.family'] = ['DejaVu Sans', 'Noto Sans CJK JP', 'sans-serif']

通用家族别名列表包含与 Matplotlib 一起提供的字体(因此它们有 100% 的被找到的机会),或大多数系统中极有可能存在的字体。

设置自定义字体系列时,一个好的做法是将一个通用家族附加到字体系列列表中,作为最后的手段。

您还可以在您的 .matplotlibrc 文件中进行设置:

font.family: Source Han Sans TW, Arial, sans-serif

要控制每个艺术家的字体使用,请使用文档中记录的 Text 属性与布局中的 namefontnamefontproperties 关键字参数。

在 Linux 上,fc-list 可以是有用的工具来发现字体名称;例如

!fc-list :lang=zh family
$ fc-list :lang=zh family
Noto to Sans Mono CJK TC,Noto Sans Mono CJK TC Bold
Noto Sans CJK TC,Noto Sans CJK TC Medium
Noto Sans CJK TC,Noto Sans CJK TC DemiLight
Noto Sans CJK KR,Noto Sans CJK KR Black
Noto Sans CJK TC,Noto Sans CJK TC Black
Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Regular
Noto Sans CJK SC,Noto Sans CJK SC Light