Как сделать графики Matplotlib отображаемыми внутри IPython-ноутбука?
Я пытаюсь использовать IPython Notebook на MacOS X с Python 2.7.2 и IPython 1.1.0.
У меня не получается получить графику matplotlib встраиваемой в ноутбук.
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
Я также пробовал использовать %pylab inline
и аргументы командной строки IPython --pylab=inline
, но это не дало никаких результатов.
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.get_backend()
показывает, что у меня установлен бэкенд 'module://IPython.kernel.zmq.pylab.backend_inline'
.
5 ответ(ов)
Вы используете %matplotlib inline
в первой ячейке блокнота, и это действительно работает. Я рекомендую попробовать следующий код:
%matplotlib inline
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
Также вы можете настроить все свои IPython ядра для автоматического запуска в inline режиме по умолчанию, установив следующие параметры конфигурации в ваши конфигурационные файлы:
c.IPKernelApp.matplotlib=<CaselessStrEnum>
Значение по умолчанию: None
Доступные варианты: ['auto', 'gtk', 'gtk3', 'inline', 'nbagg', 'notebook', 'osx', 'qt', 'qt4', 'qt5', 'tk', 'wx']
Настройте matplotlib для интерактивного использования с помощью стандартного бэкенда matplotlib.
Попробуйте эти рекомендации, и ваш график должен отобразиться корректно!
Вам следует использовать магическую команду %pylab inline
в вашем Jupyter Notebook. Эта команда загружает необходимые библиотеки для работы с графиками и делает их отображение в самом блокноте. Вот как вы можете это сделать:
%pylab inline
После выполнения этой команды вы сможете создавать графики с помощью таких библиотек, как Matplotlib и NumPy, и они будут отображаться прямо под ячейкой вашего кода. Убедитесь, что у вас установлены все необходимые библиотеки, чтобы избежать ошибок.
Чтобы установить matplotlib в режим inline по умолчанию в Jupyter (IPython 3), выполните следующие шаги:
- Отредактируйте файл
~/.ipython/profile_default/ipython_config.py
. - Добавьте строку
c.InteractiveShellApp.matplotlib = 'inline'
.
Обратите внимание, что добавление этой строки в ipython_notebook_config.py
не сработает. В остальном все должно корректно работать с Jupyter и IPython 3.1.0.
Я вынужден согласиться с foobarbecue (у меня недостаточно репутации, чтобы просто вставить комментарий под его постом):
Теперь рекомендуется не запускать Python-ноутбук с аргументом --pylab
, и по словам Фернандо Переса (создателя ipythonnb) первоначальной командой в ноутбуке должно быть %matplotlib inline
.
Смотрите здесь: http://nbviewer.ipython.org/github/ipython/ipython/blob/1.x/examples/notebooks/Part%203%20-%20Plotting%20with%20Matplotlib.ipynb
Похоже, что у вас возникла проблема с тем, что matplotlib не отображает графики после установки Anaconda. Обычно для того, чтобы графики отображались автоматически в Jupyter Notebook или IPython, нужно использовать специальную команду %matplotlib inline
.
Если графики начинают отображаться только после выполнения следующего кода:
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
то это означает, что команда %matplotlib inline
не была выполнена ранее. Эта команда активирует встроенный режим визуализации, позволяющий выводить графики непосредственно в ячейках вашего ноутбука.
Проверьте следующие моменты:
- Убедитесь, что вы используете Jupyter Notebook или IPython для запуска вашего кода, так как
%matplotlib inline
не будет работать в обычных Python-скриптах. - Убедитесь, что вы используете соответствующие версии библиотек и что они правильно установлены в вашей среде Anaconda.
Если у вас возникли дополнительные проблемы, попробуйте перезапустить ядро и выполнить все ячейки с самого начала. Это может помочь устранить неполадки.
Как вынести легенду за пределы графика
Сохранить график в файл изображения вместо его отображения
В чем разница между pip и conda?
Как изменить размер шрифта на графике matplotlib
Как задать размер шрифта заголовка фигуры и меток осей?