Получение графиков xkcd с использованием matplotlib

Текущая версия matplotlib (1.3.1) поддерживает построение hkcd-стиля, но когда я следуют основным инструкциям для создания такого графика (в iPython 1.1.0),

%pylab
plt.xkcd()
plt.plot(sin(linspace(0, 10)))
plt.title('Whoo Hoo!!!')

Я получаю

enter image description here

вместо

enter image description here

Что я делаю неправильно?

Ответ 1

Чтобы заставить его работать, вам нужно

  • matplotlib 1.3.1 (он не будет работать с matplotlib 1.3.0 или ранее)
    • sudo pip install matplotlib --upgrade
  • шрифт Юмор Санс
    • загрузите из здесь или здесь, установите (в OS X вы откроете его и нажмите "Установить" )
  • удалите кеш шрифта matplotlib (как предложено DanHickstein в matplotlib/issues/2269)
    • rm ~/.matplotlib/fontList.cache

Теперь выполните код и он должен работать.

Вам не нужно, чтобы изменить backend на TkAgg, как это предлагают некоторые люди. Для меня он отлично работает на 'module://IPython.kernel.zmq.pylab.backend_inline' (вы можете проверить его на plt.get_backend()).

(У меня была та же проблема, и я решил ее, по крайней мере, на OS X 10.8.5, с matplotlib 1.3.1 и IPython 2.0.0, удаление шрифтового кеша было необходимо для запуска шрифта.)

Ответ 2

Из сообщения в блоге, которое вы связали:

Кроме того, если вы хотите, чтобы шрифт соответствовал выше, обязательно загрузите и установите шрифт Humor Sans в вашей системе. Чтобы matplotlib распознал его, вам может понадобиться удалить кеш шрифтов...

Что касается того, какую версию шрифта загружать, я бы попробовал самое последнее.

Ответ 3

Используя ubuntu 16.04 и python 3, с matplotlib 2.0.0 установлены следующие работы для меня.

  • Установить Comic sans: sudo apt install fonts-humor-sans
  • Удалить кеш matplotlib: rm ~/.cache/matplotlib -r