Matplotlib 找不到我的 Linux 机器中安装的字体

pythonlinux

1个回答

写回答

GAO you

2025-07-01 03:10

+ 关注

linux
linux

在使用 Matplotlib 进行数据可视化时,经常会涉及到对图表的字体进行设置。然而,有时候我们会发现,在 linux 机器中安装的字体无法被 Matplotlib 找到,导致图表显示的字体不是我们期望的样式。那么,我们该如何解决这个问题呢?

首先,我们需要了解 Matplotlib 在 linux 系统中寻找字体的机制。Matplotlib 会默认使用系统中的字体进行显示,但有时候系统的字体库并不包含我们需要的字体。为了解决这个问题,我们可以手动告诉 Matplotlib 去哪里寻找字体。

接下来,我们可以通过以下步骤来添加新的字体路径到 Matplotlib 中:

步骤一:查找字体文件

首先,我们需要找到我们想要使用的字体文件。通常情况下,字体文件会以 .ttf 或 .otf 结尾。可以通过在终端中执行 find / -name "*.ttf" 或 find / -name "*.otf" 命令来查找字体文件的路径。

步骤二:创建字体配置文件

在找到字体文件后,我们需要创建一个字体配置文件,告诉 Matplotlib 去哪里寻找字体。可以通过以下代码创建一个字体配置文件 matplotlibrc:

Python

import matplotlib

matplotlib.matplotlib_fname()

执行上述代码后,会输出一个文件路径,将该路径拷贝下来。

步骤三:编辑字体配置文件

打开拷贝下来的字体配置文件,找到并编辑以下两行:

#font.family : sans-serif

#font.sans-serif : DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

将 font.family 的注释去掉,并将 font.sans-serif 行的注释去掉,将需要添加的字体文件路径添加到 font.sans-serif 行的末尾。例如,如果我们要添加字体文件 myfont.ttf,那么修改后的行应该是这样的:

font.family : sans-serif

font.sans-serif : DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif, /path/to/myfont.ttf

保存并关闭字体配置文件。

步骤四:重新运行代码

接下来,重新运行我们的代码,Matplotlib 就能够找到我们添加的字体文件了。可以通过以下代码测试是否成功:

Python

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = 'myfont'

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

# 绘制图表

plt.plot([1, 2, 3, 4], [1, 4, 9, 16])

plt.xlabel('x轴')

plt.ylabel('y轴')

plt.title('测试字体')

# 显示图表

plt.show()

以上就是解决 Matplotlib 找不到 linux 机器中安装的字体的一种方法。通过手动告诉 Matplotlib 去哪里寻找字体,我们可以自定义字体样式,使得图表显示更加美观。希望这篇文章对你有所帮助!

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号