matplotlib mathtext 找不到字体

1 投票
1 回答
877 浏览
提问于 2025-04-17 17:31

我正在尝试弄明白如何在Python的matplotlib中使用数学文本功能。

他们提供了一些简单的示例代码,我在下面复制了:

import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)

plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
     fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
plt.show()

当我尝试运行这段代码时,出现了很多警告,内容像这样:

/usr/lib/python2.7/site-packages/matplotlib/font_manager.py:1242: UserWarning: findfont: Font family ['cmtt10'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))

而且数学文本没有正确显示。图形看起来是这样的:

字体损坏的图形

而它应该是这样的:

图形应该的样子

1 个回答

0

看起来这是因为我用的旧版matplotlib有个bug,而这个版本正好是我在fedora软件库里找到的。我下载并安装了最新版本,这样就解决了这个问题。

为了获得最新版本,我需要从源代码编译。按照matplotlib的安装说明页面上的步骤,

首先,获取构建所需的依赖项:

sudo yum-builddep python-matplotlib

然后,从下载页面获取最新的.tar.gz文件(写这段话时是1.2版本)。

接下来,剩下的工作就由一个python安装脚本来处理了。

cd matplotlib // wherever the .tar.gz was extracted to.
python setup.py build
python setup.py install

撰写回答