не может изменить шрифт на Helvetica в Matplotlib в Python на Mac OS X 10.6

Я пытаюсь изменить 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

Это не работает - когда я выполняю свой код с - подробная отладка, я получаю ошибку:

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

Так, по-видимому, это не может найти Helvetica. Я не уверен почему. У меня есть Helvetica в afm каталоге mpl-данных, и когда 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 и многих других программах.

Я использую распределение Enthought 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'

Какие-либо идеи, как это может быть зафиксировано?

спасибо.

16
задан 4 July 2010 в 21:54
поделиться

1 ответ

Решение состоит в том, чтобы использовать fondu для преобразования шрифта .dfont Helvetica из Mac OS X в .ttf, а затем поместить его в каталог mpl-data/fonts, который ищет Matplotlib. Это решило проблему.

17
ответ дан 30 November 2019 в 16:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: