07 Июл 2023
2 мин
960

Вывод графиков matplotlib в IPython Notebook

Иногда при работе с библиотекой matplotlib в среде IPython Notebook возникает ситуация, когда графики, построенные с помощью этой библиотеки, не отображаются в

Содержание

Иногда при работе с библиотекой 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().

Содержание

Добавить комментарий

Определи профессию по рисунку