处理文本 - 默认字体

优质
小牛编辑
145浏览
2023-12-01

原文:Text properties and layout

基本的默认字体由一系列rcParams参数控制:

rcParam用法
'font.family'字体名称或{'cursive', 'fantasy', 'monospace', 'sans', 'sans serif', 'sans-serif', 'serif'}的列表
'font.style'默认字体,例如'normal''italic'
'font.variant'默认变体,例如'normal''small-caps'(未测试)
'font.stretch'默认拉伸'normal''condensed'(未完成)
'font.weight'字体粗细,可为整数或字符串
'font.size'默认字体大小(以磅为单位)。 相对字体大小('large''x-small')按照该大小计算

字体系列别名({'cursive','fantasy','monospace','sans','sans serif','sans-serif','serif'})和实际字体名称之间的映射由以下rcParams控制 :

系列别名映射的rcParam
'serif''font.serif'
'monospace''font.monospace'
'fantasy''font.fantasy'
'cursive''font.cursive'
{'sans', 'sans serif', 'sans-serif'}'font.sans-serif'

它是字体名称的列表。

非拉丁字形文本

从 v2.0 开始,默认字体包含许多西方字母的字形,但仍然没有覆盖 mpl 用户可能需要的所有字形。 例如,DejaVu 没有覆盖中文,韩语或日语。

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

  1. matplotlib.rcParams['font.sans-serif'] = ['Source Han Sans TW', 'sans-serif']

或在.matplotlibrc文件中设置:

  1. font.sans-serif: Source Han Sans TW, Ariel, sans-serif

要控制每个艺术家使用的字体,使用上面记录的'name''fontname''fontproperties'关键字参数。

在 linux 上,fc-list是用于发现字体名称的实用工具;例如

  1. $ fc-list :lang=zh family
  2. Noto to Sans Mono CJK TC,Noto Sans Mono CJK TC Bold
  3. Noto Sans CJK TC,Noto Sans CJK TC Medium
  4. Noto Sans CJK TC,Noto Sans CJK TC DemiLight
  5. Noto Sans CJK KR,Noto Sans CJK KR Black
  6. Noto Sans CJK TC,Noto Sans CJK TC Black
  7. Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Regular
  8. Noto Sans CJK SC,Noto Sans CJK SC Light

列出了所有支持中文的字体。