我正在尝试将matplotlib字体更改为helvetica,我想在PDF绘图中使用它。我尝试以下操作:
import matplotlib
matplotlib.use('PDF')
import matplotlib.pylab as plt
from matplotlib import rc
plt.rcParams['ps.useafm'] = True
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
plt.rcParams['pdf.fonttype'] = 42
当我使用verbose debug运行代码时,出现错误:
backend WXAgg version 2.8.10.1
/Library/Frameworks/Python.framework/Versions/6.2/lib/python2.6/site-packages/matplotlib/__init__.py:833: UserWarning: This call to matplotlib.use() has no effect
because the the backend has already been chosen;
matplotlib.use() must be called *before* pylab, matplotlib.pyplot,
or matplotlib.backends is imported for the first time.
findfont: Could not match :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium. Returning /Library/Frameworks/Python.framework/Versions/6.2/lib/python2.6/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf
Assigning font /F1 = /Library/Frameworks/Python.framework/Versions/6.2/lib/python2.6/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf
Embedding font /Library/Frameworks/Python.framework/Versions/6.2/lib/python2.6/site-packages/matplotlib/mpl-data/fonts/ttf/Vera.ttf
Writing TrueType font
显然它找不到海尔维蒂卡。我不知道为什么。我在mpl数据的afm目录中有Helvetica,当matplotlib启动时,它会读取并输出:
createFontDict: /Library/Frameworks/Python.framework/Versions/6.2/lib/python2.6/site-packages/matplotlib/mpl-data/fonts/afm/Helvetica.afm
我还需要一个特殊的ttf Helvetica字体吗?如果是的话,我怎么才能拿到?我知道我的系统上有Helvetica,因为我在Illustrator和许多其他程序中看到它。
我正在使用热情的Python发行版,如下所示:
$ python
Enthought Python Distribution -- http://www.enthought.com
Version: 6.2-2 (32-bit)
Python 2.6.5 |EPD 6.2-2 (32-bit)| (r265:79063, May 28 2010, 15:13:03)
[GCC 4.0.1 (Apple Inc. build 5488)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> matplotlib.__version__
'0.99.3'
你知道怎么解决吗?
谢谢。
我在安装Helvetica时仍然遇到问题。我在
.dfont
文件中使用了fondu,现在在mpl-data/fonts/ttf
目录中有Helvetica.ttf:我已经编辑了我的
~/.matplotlib/matplotlibrc
文件(这是根据--verbose-debug
加载的文件):但我在绘制时得到了这个错误:
如果我将默认字体设置为
serif
,Palatino就会显示得很好。有什么建议吗?
解决方案是使用fondu将.dfont Helvetica字体从Mac OS X转换为.ttf,然后将其放在Matplotlib查找的mpl data/fonts目录中。这解决了问题。
OSX10.11ElCapitan和Python3的分步解决方案(基于this post)。
brew install fondu
查找matplotlib位置:
对我来说是
/usr/local/lib/python3.5/site-packages/matplotlib/mpl-data/matplotlibrc
复制Helvetica:
将我们制作的Helvetica副本从
dfont
转换为ttf
:删除字体缓存:
rm ~/.matplotlib/fontList.py3k.cache
完成!现在您可以使用Helvetica:
相关问题 更多 >
编程相关推荐