Matplotlib - 字体是什么?



在 Matplotlib 库中,“字体”指的是用于渲染绘图和可视化中文本的字体类型。字体在自定义文本元素(例如标签、标题、注释和图例)的外观方面起着重要作用。

Matplotlib 库中字体的关键方面

  • 字体系列 - 指字体的样式或类别。常见的字体系列包括衬线、非衬线、等宽等。每个系列都有其自身的视觉特征。

  • 字体样式 - 确定文本的外观,例如正常、斜体或倾斜。

  • 字体粗细 - 指定字体的粗细或粗体程度,从正常到不同级别的粗体。

在 Matplotlib 中控制字体

  • 设置字体属性 - 我们可以使用诸如`fontsize`、`fontstyle`、`fontweight``fontfamily`等参数来控制绘图中文本元素的字体属性,这些参数在诸如`plt.xlabel()`、`plt.title()`等函数中使用。

plt.xlabel('X-axis Label', fontsize=12, fontstyle='italic', fontweight='bold', fontfamily='serif')
  • 全局字体配置 - 使用`plt.rcParams`全局调整整个绘图的字体属性,使我们能够设置默认字体设置以保持一致性。

plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.size'] = 12

字体在可视化中的重要性

  • 可读性 - 字体的选择会显著影响绘图中文本元素的可读性。选择合适的字体可以提高可视化信息的清晰度。

  • 美观性 - 字体通过影响其视觉吸引力和呈现方式来提升绘图的整体美观性。

  • 强调和风格 - 不同的字体传达不同的语气和风格,允许用户强调特定元素或创建特定的视觉氛围。

全局设置字体属性

我们可以使用 plt.rcParams 全局配置整个绘图的字体属性。

plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.size'] = 12

在接下来的章节中,让我们详细了解每个字体参数。

Matplotlib 中常见的与字体相关的函数

以下是 matplotlib 库中常见的与字体相关的函数。

plt.rcParams

在 Matplotlib 中,plt.rcParams 是一个类似字典的对象,允许您全局配置影响绘图和图形外观和行为的各种设置。它充当 Matplotlib 的中央配置系统,提供了一种便捷的方式来设置可视化中不同元素的默认参数。

plt.xlabel(), plt.ylabel(), plt.title()

这些函数用于设置轴标签和标题的字体属性。

plt.text(), plt.annotate()

这些函数用于指定注释和文本元素的字体属性。

获取当前可用的所有字体列表

要获取 matplotlib 当前可用的所有字体的列表,我们可以使用 font_manager.findSystemFonts() 方法。

示例

from matplotlib import font_manager
print("List of all fonts currently available in the matplotlib:")
print(*font_manager.findSystemFonts(fontpaths=None, fontext='ttf'), sep="")
输出
List of all fonts currently available in the matplotlib:
C:\WINDOWS\Fonts\PERBI___.TTFC:\WINDOWS\Fonts\ARIALUNI.TTFC:\Windows\Fonts\BRLNSR.TTFC:\Windows\Fonts\calibri.ttfC:\WINDOWS\Fonts\BOD_PSTC.TTFC:\WINDOWS\Fonts\WINGDNG3.TTFC:\Windows\Fonts\segoeuisl.ttfC:\Windows\Fonts\HATTEN.TTFC:\WINDOWS\Fonts\segoepr.ttfC:\Windows\Fonts\TCCM____.TTFC:\Windows\Fonts\BOOKOS.TTFC:\Windows\Fonts\BOD_B.TTFC:\WINDOWS\Fonts\corbelli.ttfC:\WINDOWS\Fonts\TEMPSITC.TTFC:\WINDOWS\Fonts\arial.ttfC:\WINDOWS\Fonts\cour.ttfC:\Windows\Fonts\OpenSans-Semibold.ttfC:\WINDOWS\Fonts\palai.ttfC:\Windows\Fonts\ebrimabd.ttfC:\Windows\Fonts\taileb.ttfC:\Windows\Fonts\SCHLBKI.TTFC:\Windows\Fonts\AGENCYR.TTFC:\Windows\Fonts\tahoma.ttfC:\Windows\Fonts\ARLRDBD.TTFC:\WINDOWS\Fonts\corbeli.ttfC:\WINDOWS\Fonts\arialbd.ttfC:\WINDOWS\Fonts\LTYPEBO.TTFC:\WINDOWS\Fonts\LTYPEB.TTFC:\WINDOWS\Fonts\BELLI.TTFC:\WINDOWS\Fonts\YuGothR.ttcC:\WINDOWS\Fonts\OpenSans-Semibold.ttfC:\Windows\Fonts\trebucbd.ttfC:\WINDOWS\Fonts\OCRAEXT.TTFC:\WINDOWS\Fonts\JUICE___.TTFC:\WINDOWS\Fonts\comic.ttfC:\Windows\Fonts\VIVALDII.TTFC:\Windows\Fonts\Candarali.ttfC:\WINDOWS\Fonts\comici.ttfC:\WINDOWS\Fonts\RAVIE.TTFC:\WINDOWS\Fonts\LeelUIsl.ttfC:\Windows\Fonts\ARIALNB.TTFC:\WINDOWS\Fonts\LSANSDI.TTFC:\Windows\Fonts\seguibl.ttfC:\WINDOWS\Fonts\himalaya.ttfC:\WINDOWS\Fonts\TCBI___
..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
TTFC:\Windows\Fonts\BOD_BLAR.TTFC:\WINDOWS\Fonts\ebrima.ttfC:\Windows\Fonts\LTYPEB.TTFC:\WINDOWS\Fonts\FRABKIT.TTFC:\WINDOWS\Fonts\REFSAN.TTFC:\WINDOWS\Fonts\gadugi.ttfC:\Windows\Fonts\times.ttfC:\WINDOWS\Fonts\MTCORSVA.TTFC:\WINDOWS\Fonts\ERASDEMI.TTFC:\Windows\Fonts\himalaya.ttfC:\WINDOWS\Fonts\georgiai.ttf

获取字体系列(或字体名称)列表

在这里,通过使用以下代码,我们将获得字体系列列表,即字体名称

示例

from matplotlib import font_manager
print("List of all fonts currently available in the matplotlib:")
print(*font_manager.findSystemFonts(fontpaths=None, fontext='ttf'), sep="")
输出
List of all fonts currently available in the matplotlib:
cmsy10
STIXGeneral
STIXSizeThreeSym
DejaVu Sans Mono
STIXGeneral
STIXSizeOneSym
.......................................................................
ITC Bookman
Computer Modern
Times
Palatino
New Century Schoolbook
广告