我试图在OS X上的EPD 7.3-2(64位)中运行以下示例代码:
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
mu, sigma = 100, 15
x = mu + sigma*np.random.randn(10000)
n, bins, patches = plt.hist(x, 50, normed=1, alpha=0.75)
y = mlab.normpdf( bins, mu, sigma)
l = plt.plot(bins, y, 'r--', linewidth=1)
plt.xlabel('Smarts')
plt.ylabel('Probability')
plt.title(r'$\mathrm{Histogram\ of\ IQ:}\ \mu=100,\ \sigma=15$')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()
最后一行给出了一个错误:
RuntimeError:无法打开facefile /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf; Cannot_Open_Resource
有两件事我不明白。首先,Vera.ttf文件位于指定位置,所以我不知道为什么Python无法打开它。
其次,我不明白为什么它在那里看。我的EPD matplotlib安装位于/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib。为什么不在那里寻找Vera.ttf?它存在于/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf中。并且sys.path中没有列出2.6目录,只列出了预期的EPD 2.7目录。最后,我的PATH环境变量是/Library/Frameworks/EPD64.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/箱中。
答案 0 :(得分:2)
这听起来像是Matplotlib的字体缓存问题。您可以尝试相关帖子中的建议:https://stackoverflow.com/a/4956933/260303
简而言之,只需删除config目录中的字体缓存:rm ~/.matplotlib/fontList.cache
。