📜  如何更改 matplotlib 中的字体?(1)

📅  最后修改于: 2023-12-03 15:38:48.145000             🧑  作者: Mango

如何更改 matplotlib 中的字体?

matplotlib 是 Python 中著名的绘图库,支持多种类型的图形绘制。在实际使用中,我们常常需要对图形中的字体进行调整。

本文将介绍如何更改 matplotlib 中的字体,包括修改全局字体和更改特定图形的字体。

修改全局字体

在 matplotlib 中,可以使用 matplotlib.rcParams 对象来修改全局字体设置。具体实现步骤如下:

  1. 导入 matplotlib 库

    import matplotlib.pyplot as plt
    
  2. 查看当前系统中可用的字体名称

    import matplotlib.font_manager as fm
    print(fm.findSystemFonts())
    

    运行以上代码后,将输出当前系统中可用的字体名称列表。

  3. 选择需要使用的字体

    在上一步得到的字体列表中选择需要使用的字体名称。例如,我们选择使用 微软雅黑 这种字体。

  4. 修改全局字体设置

    设置 font.familyfont.sans-serif 属性即可修改全局字体设置。

    plt.rcParams['font.family'] = 'sans-serif'
    plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
    

    这里将 font.family 属性设置为 sans-serif 表示使用系统默认的无衬线字体;将 font.sans-serif 属性设置为 ['Microsoft YaHei'] 表示使用名为 Microsoft YaHei 的字体。需要注意的是,字体名称需要与上一步中得到的列表中一致。

更改特定图形的字体

对于某些特殊需求,我们可能需要对特定图形中的字体进行设置。这时我们可以使用 Text 对象来修改字体。具体实现步骤如下:

  1. 导入 Text 对象

    from matplotlib.text import Text
    
  2. 创建图形并添加文本

    fig, ax = plt.subplots(figsize=(8, 6))
    
    x = [1, 2, 3]
    y = [4, 5, 6]
    
    ax.plot(x, y)
    text = ax.text(2, 5, 'Hello World', fontsize=14)
    

    这里使用 ax.text 方法添加了一个文本,文本内容为 Hello World,位于坐标点 (2, 5) 处。同时,我们将文本的字体大小设置为 14

  3. 修改文本的字体

    text.set_fontfamily('sans-serif')
    text.set_fontname('Microsoft YaHei')
    

    在添加文本后,我们可以通过 set_fontfamily 方法和 set_fontname 方法来分别修改文本的字体族和字体名称。

至此,我们已经学会了如何更改 matplotlib 中的字体。在实际使用中,我们可以根据需求选择合适的字体,以便让图形更加美观。