Как использовать «%matplotlib inline» (с примерами)

Вы можете использовать следующий код для отображения и хранения графиков Matplotlib в блокноте Python Jupyter:
% matplotlib inline
Вот как этот код описан на странице документации :
«Благодаря этому бэкэнду вывод команд построения графика отображается во внешних интерфейсах, таких как блокнот Jupyter , непосредственно под ячейкой кода, которая его создала. Полученные графики также будут сохранены в документе записной книжки».
В следующем примере показано, как использовать этот код на практике.
Пример: как использовать встроенный %matplotlibe
Предположим, мы пытаемся использовать следующий код для создания линейного графика Matplotlib в блокноте Jupyter:
import matplotlib.pyplot as plt #define x and y x = [1, 6, 10] y = [5, 13, 27] #attempt to create line plot of x and y plt.plot (x, y)
Вот как выглядит вывод в блокноте Jupyter:

Код выполняется без ошибок, но линейный график не отображается вместе с кодом.
Чтобы исправить это, мы можем использовать встроенную команду %matplotlib перед созданием линейного графика:
% matplotlib inline import matplotlib.pyplot as plt #define x and y x = [1, 6, 10] y = [5, 13, 27] #create scatter plot of x and y plt.plot (x, y)
Вот как выглядит вывод в блокноте Jupyter:

Обратите внимание, что код снова выполняется без ошибок, а график отображается в записной книжке.
Обратите внимание, что после того, как мы использовали %matplotlib inline , любые графики Matplotlib, которые мы создаем в любых будущих ячейках блокнота, также будут отображаться и храниться в блокноте.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в Python:
Как исправить ошибку Line magic function `%matplotlib.inline` not found после установки Anaconda 3?
После установки пакета Anaconda3-4.3.0.1-Windows-x86 в Windows 7 (x86), браузер Firefox 51.0.1 (32-бит). Ошибка возникает после установки пакета, открытия Anaconda Promt и вызова оттуда ipython notebook в командной строке. Для проверки правильной работы пакета после установки вводил эти тестовые данные в ipython notebook:
%matplotlib.inline from numpy import linspace, cos import matplotlib.pyplot as plt x = linspace(0, 10, 50) y = cos(x) plt.plot(x, y)
по идее должен появиться график, а выходит ошибка. Программа Spyder и Anaconda Navigator из пакета Anaconda3-4.3.0.1-Windows-x86 также не запускаются. все эти файлы которые не импортируются: C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\pyplot.py C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\colorbar.py C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\contour.py C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\text.py C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\backend_bases.py C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\textpath.py C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib\mathtext.py находятся в папке созданной по умолчанию инсталятором Anaconda3-4.3.0.1-Windows-x86: C:\Users\DmitrOK71\Anaconda3\Lib\site-packages\matplotlib изменил название папки с Lib на lib: C:\Users\DmitrOK71\Anaconda3\lib\site-packages\matplotlib но это не помогло решить проблему, появляется всё та же ошибка: ERROR:root:Line magic function %matplotlib.inline not found. не только в браузере Firefox 51.0.1 (32-бит), но так же и в Google Chrome 56.0.2924.87 (32-бит) и в Internet Explorer 11.0.9600.18449 (32-бит)
Использование %matplotlib inline в Python

В процессе изучения Python и библиотеки Matplotlib, которая используется для визуализации данных, часто встречается команда %matplotlib inline . Она может вызывать недоумение, поскольку выглядит иначе, по сравнению с большинством команд Python. Например, в следующем блоке кода:
import matplotlib.pyplot as plt import numpy as np %matplotlib inline x = np.linspace(0, 10, 100) plt.plot(x, np.sin(x)) plt.plot(x, np.cos(x)) plt.show()
Здесь команда %matplotlib inline может показаться загадочной. Что это и для чего она нужна?
Что такое %matplotlib inline?
%matplotlib inline — это команда, специфичная для IPython (или Jupyter notebook), которая позволяет вам встроить графики прямо внутрь ноутбука, а не в новом окне.
Зачем она нужна?
Когда вы работаете с Matplotlib в интерактивных режимах, таких как Jupyter notebook или IPython, графики, которые вы создаете, отображаются в отдельном окне. Это может быть неудобно, особенно если вы хотите сохранить свою работу в виде ноутбука с результирующими графиками.
Команда %matplotlib inline решает эту проблему, позволяя вам встроить графики прямо в ноутбук. Это удобно, поскольку позволяет сохранить все в одном месте, а также делиться своими ноутбуками с другими.
Как это работает?
%matplotlib inline является примером использования так называемых «магических» функций в IPython. «Магические» функции — это набор команд, предоставляемых IPython, которые имеют синтаксис, отличающийся от обычного синтаксиса Python. Эти функции начинаются с символа % или %% и предназначены для выполнения определенных операций.
В случае с %matplotlib inline , когда математическая библиотека выполняет команду для создания графика, «магическая» функция перехватывает вывод и встраивает его в ноутбук.
Вывод
Команда %matplotlib inline — это удобный инструмент для работы с графиками в интерактивном режиме Python. Она позволяет встроить графики прямо в ноутбук, что упрощает сохранение и обмен результатами работы.
Matplotlib. Урок 1. Быстрый старт
![]()
Первый урок из цикла, посвященному библиотеке для визуализации данных Matplotlib. В рамках данного урока будут рассмотрены такие вопросы как: установка библиотеки, построение линейного графика, несколько графиков на одном и на разных полях, построение диаграммы для категориальных данных и обзор основных элементов графика.
- Установка
- Варианты установки Matplotlib
- Установка Matplotlib через менеджер pip
- Проверка установки
Установка
Варианты установки Matplotlib
Существует два основных варианта установки этой библиотеки: в первом случае вы устанавливаете пакет Anaconda , в состав которого входит большое количество различных инструментов для работы в области машинного обучения и анализа данных (и не только); во втором – установить Matplotlib самостоятельно, используя менеджер пакетов. Про установку Anaconda вы можете прочитать в статье Python. Урок 1. Установка .
Установка Matplotlib через менеджер pip
Второй вариант – это воспользоваться менеджером pip и установить Matplotlib самостоятельно, для этого введите в командной строке вашей операционной системы следующие команды:
>python -m pip install -U pip >python -m pip install -U matplotlib
Первая из них обновит ваш pip , вторая установит matplotlib со всеми необходимыми зависимостями.
Проверка установки
Для проверки того, что все у вас установилось правильно, запустите интерпретатор Python и введите в нем следующее:
>>> import matplotlib
После этого можете проверить версию библиотеки (она скорее всего будет отличаться от приведенной ниже):
>>> matplotlib.__version__ '3.0.3'
Быстрый старт
Перед тем как углубиться в дебри библиотеки Matplotlib , для того, чтобы появилось интуитивное понимание принципов работы с этим инструментом, рассмотрим несколько примеров, изучив которые вы уже сможете использовать библиотеку для решения своих задач.
Если вы работаете в Jupyter Notebook для того, чтобы получать графики рядом с ячейками с кодом необходимо выполнить специальную magic команду после того, как импортируете matplotlib ::
import matplotlib.pyplot as plt %matplotlib inline
Результат работы выглядеть будет так, как показано на рисунке ниже.

Если вы пишете код в .py файле, а потом запускаете его через вызов интерпретатора Python , то строка %matplotlib inline вам не нужна, используйте только импорт библиотеки.
Пример, аналогичный тому, что представлен на рисунке выше, для отдельного Python файла будет выглядеть так:
import matplotlib.pyplot as plt plt.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5]) plt.show()
В результате получите график в отдельном окне.

Далее мы не будем останавливаться на особенностях использования magic команды, просто запомните, если вы используете Jupyter notebook при работе с Matplotlib вам обязательно нужно включить %matplotlib inline.
Теперь перейдем непосредственно к Matplotlib . Задача урока “Быстрый старт” – это построить разные типы графиков, настроить их внешний вид и освоиться в работе с этим инструментом.
Построение графика
Для начал построим простую линейную зависимость, дадим нашему графику название, подпишем оси и отобразим сетку. Код программы:
import numpy as np # Независимая (x) и зависимая (y) переменные x = np.linspace(0, 10, 50) y = x
# Построение графика plt.title("Линейная зависимость y = x") # заголовок plt.xlabel("x") # ось абсцисс plt.ylabel("y") # ось ординат plt.grid() # включение отображение сетки plt.plot(x, y) # построение графикаВ результате получим следующий график:

Изменим тип линии и ее цвет, для этого в функцию plot() , в качестве третьего параметра передадим строку, сформированную определенным образом, в нашем случае это “r–”, где “r” означает красный цвет, а “–” – тип линии – пунктирная линия. Более подробно о том, как задавать цвет и какие типы линии можно использовать будет рассказано с одной из следующих глав.
# Построение графика plt.title("Линейная зависимость y = x") # заголовок plt.xlabel("x") # ось абсцисс plt.ylabel("y") # ось ординат plt.grid() # включение отображение сетки plt.plot(x, y, "r--") # построение графика
Несколько графиков на одном поле
Построим несколько графиков на одном поле, для этого добавим квадратичную зависимость:
# Линейная зависимость x = np.linspace(0, 10, 50) y1 = x # Квадратичная зависимость y2 = [i**2 for i in x] # Построение графика plt.title("Зависимости: y1 = x, y2 = x^2") # заголовок plt.xlabel("x") # ось абсцисс plt.ylabel("y1, y2") # ось ординат plt.grid() # включение отображение сетки plt.plot(x, y1, x, y2) # построение графика
В приведенном примере в функцию plot() последовательно передаются два массива для построения первого графика и два массива для построения второго, при этом, как вы можете заметить, для обоих графиков массив значений независимой переменной x один и то же.
Несколько разделенных полей с графиками
Третья, довольно часто встречающаяся задача – это отобразить два или более различных поля, на которых будет отображено по одному или более графику.
Построим уже известные нам две зависимость на разных полях.
# Линейная зависимость x = np.linspace(0, 10, 50) y1 = x # Квадратичная зависимость y2 = [i**2 for i in x] # Построение графиков plt.figure(figsize=(9, 9)) plt.subplot(2, 1, 1) plt.plot(x, y1) # построение графика plt.title("Зависимости: y1 = x, y2 = x^2") # заголовок plt.ylabel("y1", fontsize=14) # ось ординат plt.grid(True) # включение отображение сетки plt.subplot(2, 1, 2) plt.plot(x, y2) # построение графика plt.xlabel("x", fontsize=14) # ось абсцисс plt.ylabel("y2", fontsize=14) # ось ординат plt.grid(True) # включение отображение сетки
Здесь мы воспользовались новыми функциями:
figure() – функция для задания глобальных параметров отображения графиков. В нее, в качестве аргумента, мы передаем кортеж, определяющий размер общего поля.
subplot() – функция для задания местоположения поля с графиком. Существует несколько способов задания областей для вывода через функцию subplot() мы воспользовались следующим: первый аргумент – количество строк, второй – столбцов в формируемом поле, третий – индекс (номер поля, считаем сверху вниз, слева направо).
Остальные функции уже вам знакомы, дополнительно мы использовали параметр fontsize для функций xlabel() и ylabel() , для задания размера шрифта.
Построение диаграммы для категориальных данных
До этого мы строили графики по численным данным, т.е. зависимая и независимая переменные имели числовой тип. На практике довольно часто приходится работать с данными нечисловой природы – имена людей, название фруктов, и т.п.
Построим диаграмму на которой будет отображаться количество фруктов в магазине:
fruits = ["apple", "peach", "orange", "bannana", "melon"] counts = [34, 25, 43, 31, 17] plt.bar(fruits, counts) plt.title("Fruits!") plt.xlabel("Fruit") plt.ylabel("Count")
Для вывода диаграммы мы использовали функцию bar() .
К этому моменту, если вы самостоятельно попробовали запустить приведенные выше примеры, у вас уже должно сформировать некоторое понимание того, как осуществляется работа с этой библиотекой.
Основные элементы графика
Рассмотрим основные термины и понятия, касающиеся изображения графика, с которыми вам необходимо будет познакомиться, для того, чтобы в дальнейшем у вас не было трудностей при прочтении материалов из этого цикла статей и документации по библиотеке matplotlib .

Корневым элементом при построения графиков в системе Matplotlib является Фигура ( Figure ). Все, что нарисовано на рисунке выше является элементами фигуры. Рассмотрим ее составляющие более подробно.
На рисунке представлены два графика – линейный и точечный. Matplotlib предоставляет огромное количество различных настроек, которые можно использовать для того, чтобы придать графику вид, который вам нужен: цвет, толщина и тип линии, стиль линии и многое другое, все это мы рассмотрим в ближайших статьях.
Вторым, после непосредственно самого графика, по важности элементом фигуры являются оси. Для каждой оси можно задать метку (подпись), основные ( major ) и дополнительные ( minor ) тики, их подписи, размер и толщину, также можно задать диапазоны по каждой из осей.
Сетка и легенда
Следующими элементами фигуры, которые значительно повышают информативность графика являются сетка и легенда. Сетка также может быть основной ( major ) и дополнительной ( minor ). Каждому типу сетки можно задавать цвет, толщину линии и тип. Для отображения сетки и легенды используются соответствующие команды.
Ниже представлен код, с помощью которого была построена фигура, изображенная на рисунке:
import matplotlib.pyplot as plt from matplotlib.ticker import (MultipleLocator, FormatStrFormatter, AutoMinorLocator) import numpy as np x = np.linspace(0, 10, 10) y1 = 4*x y2 = [i**2 for i in x] fig, ax = plt.subplots(figsize=(8, 6)) ax.set_title("Графики зависимостей: y1=4*x, y2=x^2", fontsize=16) ax.set_xlabel("x", fontsize=14) ax.set_ylabel("y1, y2", fontsize=14) ax.grid(which="major", linewidth=1.2) ax.grid(which="minor", linestyle="--", color="gray", linewidth=0.5) ax.scatter(x, y1, c="red", label="y1 = 4*x") ax.plot(x, y2, label="y2 = x^2") ax.legend() ax.xaxis.set_minor_locator(AutoMinorLocator()) ax.yaxis.set_minor_locator(AutoMinorLocator()) ax.tick_params(which='major', length=10, width=2) ax.tick_params(which='minor', length=5, width=1) plt.show()Если в данный момент вам многое кажется непонятным – не переживайте, далее мы разберем подробно особенности настройки и использования всех элементов представленных на поле с графиками.
P.S.
Вводные уроки по “Линейной алгебре на Python” вы можете найти соответствующей странице нашего сайта . Все уроки по этой теме собраны в книге “Линейная алгебра на Python”.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. Для начала вы можете познакомиться с вводными уроками. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Matplotlib. Урок 1. Быстрый старт : 6 комментариев
- Михаил 03.10.2020 В разделе “Построение графика” забыли в код добавить
import numpy as np
- writer 05.10.2020 Спасибо!