2013-03-01 72 views
1

我想弄清楚如何獲得在python matplotlib中工作的mathtext。matplotlib mathtext找不到字體

他們提供一些small example code我所抄錄如下:

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]))

和mathtext沒有按」 t正確渲染。這個數字看起來是這樣的:

Figure with broken fonts

當它應該是這樣的:

how figure should look

+0

嘗試清除matplotlib'd字體緩存 – 2013-03-01 01:12:44

+0

什麼是你的系統和python的版本和matplotlib你使用? – 2013-03-01 08:12:17

+0

@DavidZwicker fedora 14,python 2.7,python-matplotlib-1.0.1-12.fc14.i686 – Joe 2013-03-01 22:13:37

回答

0

顯然,這是與舊版本matplotlib的錯誤,那是在我的Fedora版本庫。我下載並安裝了最新版本,並修復了這個錯誤。

要獲得最新版本,我必須從源代碼構建它。從matplotlib installation instructions page

首先,讓構建依賴以下的說明: sudo yum-builddep python-matplotlib

然後,從download page(在寫作時的版本1.2)

獲得最新的名爲.tar.gz然後,其餘的由一個python安裝腳本來處理。

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