Может кто-нибудь объяснить мне, что именно используется %matplotlib inline
?
Цель "% matplotlib inline"
Ответ 1
%matplotlib
является магической функцией в IPython. Я приведу здесь соответствующую документацию для чтения:
IPython имеет набор предопределенных "магических функций", которые вы можете вызывать с помощью синтаксиса стиля командной строки. Существует два типа магии, ориентированные на линию и ориентированные на ячейки. Линейные магии префиксны с символом% и работают так же, как вызовы командной строки OS: они получают в качестве аргумента остальную часть строки, где аргументы передаются без круглых скобок или кавычек. Магины линий могут возвращать результаты и могут использоваться в правой части задания. Клеточные магии имеют префикс с двойным %%, и они являются функциями, которые получают в качестве аргумента не только остальную часть строки, но и строки под ней в отдельном аргументе.
%matplotlib inline
устанавливает бэкенд matplotlib для встроенного backend:
С помощью этого бэкэнда вывод команд построения отображается в виде строки внутри интерфейсов, таких как блокнот Jupyter, непосредственно под ячейкой кода, которая его создала. Полученные графики также будут сохранены в документе записной книжки.
При использовании встроенного бэкэнда ваши графические диаграммы matplotlib будут включены в ваш блокнот рядом с кодом. Возможно, стоит также прочитать Как сделать IP-планшет matplotlib для IPython встроенным для справки о том, как его использовать в вашем коде.
Если вам нужна интерактивность, вы можете использовать nbagg backend с %matplotlib notebook
(в IPython 3.x), как описано здесь.
Ответ 2
Если вы используете IPython, %matplotlib inline
сделает вывод вашего графика и будет сохранен в ноутбуке.
Согласно документации
Чтобы установить это, перед тем, как будет выполнен какой-либо построчный или импортированный текст
matplotlib
вы должны выполнить%matplotlib magic command
. Эта выполняет необходимую заглавную настройку для работы IPython правильно рука об руку сmatplotlib
; это не означает, однако, фактически выполнять любые команды импорта Python, то есть имена не являются добавлен в пространство имен.Особенно интересным бэкэнд, предоставляемым IPython, является
inline
. Это доступно только для ноутбуков Jupyter и Jupyter QtConsole. Его можно вызвать следующим образом:%matplotlib inline
С этой базой данных вывод команд построения отображается в строке в интерфейсах, таких как ноутбук Jupyter, непосредственно под кодом клетки, которые его продуцировали. Затем полученные графики будут также сохранены в документ записной книжки.
Ответ 3
Если вы хотите добавить графики в свой блокнот Jupyter, то %matplotlib inline
является стандартным решением. И есть другие магические команды, которые будут использовать matplotlib
в интерактивном режиме в Jupyter.
%matplotlib
: любая команда графика plt
теперь будет вызывать открытие окна рисунка, и можно будет запускать дополнительные команды для обновления графика. Некоторые изменения не будут отображаться автоматически, для принудительного обновления используйте plt.draw()
%matplotlib notebook
: приведет к интерактивным графикам, встроенным в ноутбук, вы можете увеличивать и изменять размеры фигуры
%matplotlib inline
: рисовать только статичные изображения в блокноте
Ответ 4
Ядро IPython прекрасно работает с matplotlib, показывая все графики, встроенные в ноутбук Jupyter. Это делается командой "% matplotlib inline"
Ответ 5
Если вы не знаете, что такое бэкэнд, вы можете прочитать это: https://matplotlib.org/tutorials/introductory/usage.html#backends
Некоторые люди используют matplotlib в интерактивном режиме из оболочки Python и окна печати появляются, когда они набирают команды. Некоторые люди бегут Блокноты Jupyter и рисовать линейные графики для быстрого анализа данных. Другие встраивают matplotlib в графические пользовательские интерфейсы, такие как wxpython. или pygtk для создания многофункциональных приложений. Некоторые люди используют matplotlib в пакетные скрипты для генерации постскриптных изображений из числовых симуляции, а третьи запускают серверы веб-приложений для динамически обслуживать графики. Чтобы поддержать все эти варианты использования, Matplotlib может предназначаться для разных выходов, и каждый из них возможности называется бэкэндом; "интерфейс" - это пользователь код, то есть код построения, тогда как "бэкэнд" делает все трудное работать за кулисами, чтобы сделать фигуру.
Поэтому, когда вы набираете% matplotlib inline, он активирует встроенный бэкэнд. Как обсуждалось в предыдущих постах:
С этим бэкэндом вывод команд построения графиков отображается встроенным в интерфейсе, как ноутбук Jupyter, прямо под кодом клетка, которая произвела это. Полученные графики затем также будут сохранены в тетрадный документ.
Ответ 6
Основная причина использования %matplotlib inline
заключается в том, чтобы %matplotlib inline
вашего графика и сохранить его в ноутбуке, чтобы он не превышал ноутбук.
Ответ 7
Начиная с IPython 5.0 и matplotlib 2.0 вы можете избежать использования IPythons специфическая магия и использование
matplotlib.pyplot.ion()/matplotlib.pyplot.ioff()
, которые имеют Преимущества работы вне IPython.
Ответ 8
Это не обязательно писать это. У меня это работало нормально без (%matplotlib
) магической функции.
Я использую компилятор Sypder, который поставляется с Anaconda.