2015-02-03 2 views
1

У меня возникла новая ошибка с Matplotlib 1.4.2 в Mac OS X (10.10.2) при попытке установить шрифт Times New Roman в моем сюжете. Вот MWE, что дает ошибку:Ошибка при попытке установить шрифт шрифта с использованием Matplotlib

import numpy as np 
import matplotlib.pyplot as plt 

x = np.arange(0, 5, 0.1); 
y = np.sin(x) 
plt.plot(x, y) 
plt.xlabel('X axis', fontname='Times New Roman') 

Если я пытаюсь это, я получаю ValueError: failed to convert font family name to ASCII. Добавление метки без установки шрифта работает нормально.

Эта проблема, похоже, не связана с конкретным шрифтом, потому что попытка Helvetica или Arial вызывает ту же проблему.

Я попытался удалить кеш шрифта в ~/.matplotlib/fontList.cache, а затем удалить и переустановить Matplotlib и получить ту же ошибку. Как я и ожидал, когда я проверю диспетчер шрифтов с помощью matplotlib.font_manager.OSXInstalledFonts(), я вижу полный список установленных шрифтов.

Я не уверен, какое изменение вызвало эту ошибку (возможно, она будет обновляться до 10.10.2), но я смог установить шрифт таким образом, чтобы это было хорошо, пока я его не пробовал - я даже пытаюсь используйте ранее действующий код.

ответ

1

У меня была аналогичная проблема, когда я использовал fontdict.

Я нашел решение здесь: http://matplotlib.1069221.n5.nabble.com/matplotlib-error-ValueError-failed-to-convert-font-family-name-to-ASCII-td44202.html

Найти файл matplotlibrc:

import matplotlib 
matplotlib.matplotlib_fname() 

Откройте файл и изменить графический бэкенд, например:
"бэкенд: MacOSX" -> " бэкэнд: TkAgg "

Смежные вопросы