Перейти к содержимому

Matplotlib inline что это

  • автор:

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

Как использовать «%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

Comparison of graph display in Jupyter notebooks with and without %matplotlib inline command.

В процессе изучения 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. Быстрый старт

Follow us on Google Plus Follow us on rss

Первый урок из цикла, посвященному библиотеке для визуализации данных 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 комментариев

    1. Михаил 03.10.2020 В разделе “Построение графика” забыли в код добавить
      import numpy as np
    1. writer 05.10.2020 Спасибо!

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *