matplotlib mathtext 找不到字体
我正在尝试弄明白如何在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