Что именно используется % matplotlib inline?

Ответы (10)

Чтобы пояснить ясно:

Если не нравится:

enter image description here

добавить % matplotlib inline

enter image description here

и вот он у вас в записной книжке jupyter.

% matplotlib - это волшебная функция в IPython. Я процитирую здесь соответствующую документацию, которую вы можете прочитать для удобства:

IPython имеет набор предопределенных «волшебных функций», которые вы можете вызывать с помощью синтаксиса в стиле командной строки. Есть два вида магии: линейно-ориентированная и клеточно-ориентированная. Магия строк начинается с символа% и работает так же, как вызовы командной строки ОС: они получают в качестве аргумента остальную часть строки, где аргументы передаются без скобок или кавычек. Магия линий может возвращать результаты и может использоваться в правой части задания. Клеточная магия имеет префикс с двойным %%, и это функции, которые получают в качестве аргумента не только остальную часть строки, но и строки под ней в отдельном аргументе.

% matplotlib inline устанавливает бэкэнд matplotlib как встроенный бэкэнд:

В этом бэкэнде выходные данные команд построения графиков отображаются во внешних интерфейсах, как в записной книжке Jupyter, непосредственно под ячейкой кода, которая их создала. Полученные графики также будут сохранены в записной книжке.

При использовании 'встроенного' бэкэнда ваши графики matplotlib будут включены в вашу записную книжку рядом с кодом. Возможно, стоит также прочитать How to make IPython notebook matplotlib plot inline для справки о том, как использовать его в вашем коде.

Если вам тоже нужна интерактивность, вы можете использовать nbagg backend с % matplotlib notebook (в IPython 3.x), как описано здесь.

Если вы хотите добавить графики в свой блокнот Jupyter, то стандартным решением будет % matplotlib inline. И есть другие волшебные команды, которые будут использовать matplotlib интерактивно в Jupyter.

% matplotlib: любая команда plt plot теперь приведет к открытию окна рисунка, и можно будет запустить дополнительные команды для обновления графика. Некоторые изменения не отображаются автоматически, для принудительного обновления используйте plt.draw ()

% matplotlib notebook: приведет к интерактивным графикам, встроенным в записную книжку, вы можете масштабировать и изменять размер рисунка

% matplotlib inline: рисовать только статические изображения в записной книжке

TL; DR

% matplotlib inline - отображает вывод в строке


Ядро IPython имеет возможность отображать графики путем выполнения кода. Ядро IPython разработано для бесперебойной работы с библиотекой построения графиков matplotlib для обеспечения этой функциональности.

% matplotlib - это волшебная команда, которая выполняет необходимую закулисную настройку для корректной работы IPython рука об руку с matplotlib; он не выполняет никаких команд импорта Python, то есть имена не добавляются в пространство имен.

Отображать вывод в отдельном окне

%matplotlib

Встроенный вывод вывода

(доступно только для Jupyter Notebook и Jupyter QtConsole)

%matplotlib inline

Дисплей с интерактивными бэкэндами

(допустимые значения 'GTK3Agg', 'GTK3Cairo', 'MacOSX', 'nbAgg', 'Qt4Agg', 'Qt4Cairo', 'Qt5Agg', 'Qt5Cairo', 'TkAgg', 'TkCairo', ' WebAgg ',' WX ',' WXAgg ',' WXCairo ',' agg ',' cairo ',' pdf ',' pgf ',' ps ',' svg ',' template ')

.
%matplotlib gtk

Пример - GTK3Agg - рендеринг Agg на холсте GTK 3.x (требуется PyGObject и pycairo или cairocffi).

Подробнее об интерактивных бэкэндах matplotlib: здесь


Начиная с IPython 5.0 и matplotlib 2.0 вы можете избежать использования Особая магия IPython и использование matplotlib.pyplot.ion ()/matplotlib.pyplot.ioff () которые также имеют преимущества работы за пределами IPython.

См .: IPython Rich Output - интерактивное построение графиков

Если вы не знаете, что такое backend, вы можете прочитать это: https://matplotlib.org/tutorials/introductory/usage.html#backends

Некоторые люди используют matplotlib в интерактивном режиме из оболочки Python и при вводе команд появляются всплывающие окна построения графиков. Некоторые люди бегут Блокноты Jupyter и рисование встроенных графиков для быстрого анализа данных. Другие встраивают matplotlib в графические пользовательские интерфейсы, такие как wxpython. или pygtk для создания многофункциональных приложений. Некоторые люди используют matplotlib в пакетные скрипты для генерации постскриптум изображений из числовых моделирования, а третьи запускают серверы веб-приложений для динамически обслуживать графики. Чтобы поддержать все эти варианты использования, matplotlib может нацеливаться на разные выходные данные, и каждый из них возможности называется бэкэнд; "интерфейс" - это пользователь, с которым сталкивается код, то есть код построения, тогда как "бэкэнд" делает все работать за кадром, чтобы сделать фигуру.

Итак, когда вы вводите% matplotlib inline, он активирует встроенный бэкэнд. Как обсуждалось в предыдущих сообщениях:

В этом бэкэнде вывод команд построения отображается встроенным. внутри интерфейсов, как в записной книжке Jupyter, прямо под кодом ячейка, которая его произвела. Полученные графики также будут сохранены в документ записной книжки.

Если вы используете Jupyter Notebook, встроенная команда% matplotlib заставит ваши результаты графика появиться в записной книжке, также может быть сохранена.

Начиная с IPython 5.0 и matplotlib 2.0 вы можете избежать использования Особая магия и использование IPython matplotlib.pyplot.ion () / matplotlib.pyplot.ioff () которые имеют преимущества работы и вне IPython.

документы ipython

Это не обязательно писать. Он отлично работал у меня без магической функции (% matplotlib). Я использую компилятор Sypder, который входит в состав Anaconda.

Это просто означает, что любой график, который мы создаем как часть нашего кода, будет отображаться в той же записной книжке, а не в отдельном окне, что произошло бы, если бы мы не использовали этот волшебный оператор.

Если вы используете IPython, % matplotlib inline заставит ваши выходные данные отображаться и храниться в записной книжке.

Согласно документации

Чтобы настроить это, перед построением или импортом matplotlib будет выполнено, вы должны выполнить волшебную команду % matplotlib. Этот выполняет необходимую закулисную настройку для работы IPython правильно рука об руку с matplotlib; однако это не фактически выполнять любые команды импорта Python, то есть имена не добавлен в пространство имен.

Особенно интересным сервером, предоставляемым IPython, является встроенный бэкэнд. Это доступно только для Jupyter Notebook и Jupyter QtConsole. Его можно вызвать следующим образом:

% matplotlib inline

В этом бэкэнде вывод команд построения отображается в строке внутри интерфейсов, как в записной книжке Jupyter, прямо под кодом ячейка, которая его произвела. Полученные графики также будут сохранены в документ записной книжки.

2022 WebDevInsider