Matplotlib сообщает, что семейство шрифтов 'serif' не найдено - PullRequest
0 голосов
/ 13 сентября 2018

Когда я пытаюсь запустить, например:

mpl.rcParams['font.family'] = 'serif'
plt.rcParams['figure.figsize'] = [15,7]
plt.plot(data['flow-time'], data['staticpressurerecovery'])
plt.xlabel('Time [s]')
plt.ylabel('Static Pressure Recovery [-]')
plt.title('McD13_4S3 Plenum: Performance Coefficient ')
plt.ylim((0.33, 0.4))
plt.grid()
plt.show()

в записной книжке Jupyter я получаю следующее сообщение об ошибке:

C:\ProgramData\Anaconda3\lib\site-packages\matplotlib\font_manager.py:1331: UserWarning: findfont: Font family ['serif'] not found. Falling back to DejaVu Sans
  (prop.get_family(), self.defaultFamily[fontext]))

Вещи, которые я пробовал:

  1. Удаление fontList.cache, fontList.json и fontList.py3.cache

  2. Раскомментирование разделов, связанных с семейством шрифтов файла matplotlibrc

  3. Деинсталлировано и переустановлено matplotlib с использованием pip uninstall matplotlib и pip install matplotlib

Ничто не решило проблему. Единственный возможный способ получить разные шрифты сейчас - это использовать LaTeX в качестве бэкэнда, но это медленно и не нужно.

Есть идеи, что я могу попробовать дальше?

Редактировать: я использую Windows 10, поэтому не использую apt-get для меня. Кажется, это обычное решение этих проблем, но я не могу этого сделать. Похоже, что эти решения просто добавляют шрифты Microsoft в диспетчер шрифтов Linux, так что это, вероятно, даже не актуально, так как я уже на машине Microsoft.

Минимальный рабочий пример:

import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np

mpl.rcParams['font.family'] = 'serif'
mpl.rcParams['font.serif'] = 'Computer Modern'


t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)
plt.show()

В fontList.json Computer Modern указан как доступный шрифт.

1 Ответ

0 голосов
/ 20 октября 2018

У меня была такая же проблема.Для меня изменение моей версии matplotlib с обратно на 1.5.3 решает проблему.Сначала вам нужно pip uninstall matplotlib, затем pip install matplotlib==1.5.3.

Больше контекста. Я использовал ggplot на ноутбуке Zeppelin с Amazon EC2.Каким-то образом установленная версия matplotlib была 2.2.3.

После смены версии ошибка исчезла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...