Иногда при работе с библиотекой matplotlib в среде IPython Notebook возникает ситуация, когда графики, построенные с помощью этой библиотеки, не отображаются в блокноте. Вместо этого отображается строка подобного вида:
<matplotlib.figure.Figure at 0x110b9c450>
Это является типичной проблемой, с которой могут столкнуться начинающие пользователи при использовании библиотеки matplotlib в IPython Notebook.
Например, имеется следующий код:
import matplotlib import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 3*np.pi, 500) plt.plot(x, np.sin(x**2)) plt.title('A simple chirp') plt.show()
Ожидается, что после выполнения этого кода на экране появится график функции. Однако, вместо графика появляется строка <matplotlib.figure.Figure at 0x110b9c450>
.
Для решения этой проблемы необходимо использовать магическую команду %matplotlib inline
. Эта команда позволяет выводить графики matplotlib прямо в блокноте, а не в отдельном окне.
Таким образом, код будет выглядеть следующим образом:
import matplotlib import numpy as np import matplotlib.pyplot as plt %matplotlib inline x = np.linspace(0, 3*np.pi, 500) plt.plot(x, np.sin(x**2)) plt.title('A simple chirp') plt.show()
Теперь после выполнения этого кода график будет отображаться прямо в блокноте IPython.
Бывают случаи, когда даже после использования команды %matplotlib inline
, графики все равно не отображаются. В этом случае стоит проверить, какой backend используется для отрисовки графиков. Это можно сделать с помощью функции matplotlib.get_backend()
. Если в качестве backend используется 'module://IPython.kernel.zmq.pylab.backend_inline'
, то графики должны отображаться нормально. Если же используется другой backend, то его стоит сменить на 'module://IPython.kernel.zmq.pylab.backend_inline'
с помощью функции matplotlib.use()
.
Добавить комментарий