что такое matplotlib в python
Построение графиков в Python при помощи Matplotlib
Картиной можно выразить тысячу слов. В случае с библиотекой Python matplotlib, к счастью, понадобится намного меньше слов в коде для создания качественных графиков.
Однако, matplotlib это еще и массивная библиотека, и создание графика, который будет выглядеть «просто, нормально» обычно проходит через путь проб и ошибок. Использование однострочных линий для создания базовых графиков в matplotlib – весьма просто, но умело пользоваться остальными 98% библиотеки может быть сложно.
Эта статья – руководство для пользователей Python на начальном-среднем уровне по matplotlib, с использованием как теории, так и практических примеров. Обучение по практическим примерам может быть очень продуктивным, и дает возможность получить представление даже на поверхностном уровне понимания внутренней работы и макета библиотеки.
Что мы рассмотрим?
Эта статья подразумевает, что пользователь имеет хотя-бы минимальное представление о NumPy. Мы в основном будем пользоваться модулем numpy.random для создания «игрушечных» данных, рисовать примеры из различных статистических источников.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Telegram Чат & Канал
Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Если у вас еще не установлен matplotlib, рекомендуем ознакомиться с руководством по установке, перед тем как продолжить.
Почему Matplotlib может быть сложным?
Изучение matplotlib временами может быть тяжелым процессом. Проблема не в нехватке документации (которая весьма обширная, между прочим). Сложности могут возникнуть со следующим:
Так что, перед тем как мы перейдем к сложным примерам, не помешает освоить корневые концепции дизайна matplotlib.
Pylab: что это и нужно ли мне это?
Немножко истории: Нейробиолог Джон Д. Хантер начал разрабатывать matplotlib в 2003 году, в основном вдохновляясь эмуляцией команд программного обеспечения Mathworks MATLAB. Джон отошел в мир иной трагически рано, в возрасте 44 лет в 2012 году, и matplotlib на сегодняшний день является целиком и полностью продуктом сообщества: развивается и поддерживается множеством людей. (Джон говорил об эволюции matplotlib на конференции SciPy в 2012, которую однозначно стоит посмотреть.)
Одной из важных особенностей MATLAB является его глобальный стиль. Концепция импорта Python не сильно используется в MATLAB, и большинство функций MATLAB легко доступны для пользователя на верхнем уровне.
Заказать свой собственный уникальный номер можно от Сим-Трейд.ру. Быстрая доставка в день заказа и красивые номера начиная от 300 руб. с выгодным тарифным планом. Свой уникальный номер это хороший признак для введения бизнеса с момента первого звонка.
Понимание того, что корни matplotlib растут из MATLAB, помогает объяснить существование pylab. pylab – это модуль внутри библиотеки matplotlib, который был встроен для подражания общего стиля MATLAB. Он существует только для внесения ряда функций классов из NumPy и matplotlib в пространство имен, что упрощает переход пользователей MATLAB, которые не сталкивались с необходимостью в операторах импорта. Бывшие пользователи MATLAB (которые очень хорошие люди, обещаем!) полюбили его функционал, потому что при помощи from pylab import * они могут просто вызывать plot() или array() напрямую также, как они это делали в MATLAB.
Проблема здесь может быть очевидной для некоторых пользователей Python: использование from pylab import * в сессии или скрипте – как правило, плохая идея. Matplotlib сегодня прямым текстом рекомендуют не делать этого в своих руководствах:
[pylab] все еще существует по историческим причинам, но его использование не рекомендуется. Он перегружает пространства имен функциями, которые оттеняют надстройки Python и может привести к скрытым багам. Для получения интеграции IPython без использования импортов, рекомендуется использовать %matplotlib.
В глубине своей, существует целая тонна потенциально конфликтных импортов, замаскированных в коротком источнике pylab. Фактически, использование ipython —pylab (из терминала или командной строки) или %pylab (из инструментов IPython/Jupyter) легко вызывает from pylab import *
Суть в том, что matplotlib забросили этот удобный модуль и рекомендуют не использовать pylab, подтверждая ключевое правило Python – явное лучше, чем неявное.
Без необходимости в использовании pylab, мы всегда можем обойтись всего одним каноничным импортом:
Установка matplotlib и архитектура графиков / plt 1
matplotlib — это библиотека, предназначенная для разработки двумерных графиков (включая 3D-представления). За последнее время она широко распространилась в научных и инженерных кругах (http://matplotlib.org):
Среди всех ее функций особо выделяются следующие:
О Matplotlib
matplotlib спроектирована с целью максимально точно воссоздать среду MATLAB в плане графического интерфейса и синтаксической формы. Этот подход оказался успешным, ведь он позволил задействовать особенности уже проверенного ПО (MATLAB), распространив библиотеку в среду технологий и науки. Более того, она включает тот объем работы по оптимизации, который был проделан за много лет. Результат — простота в использовании, что особенно важно для тех, у кого нет опыта работы в этой сфере.
Помимо простоты библиотека matplotlib также унаследовала от MATLAB интерактивность. Это значит, что специалист можно вставлять команду за командой для постепенной разработки графического представления данных. Этот режим отлично подходит для более интерактивных режимов работы с Python, таких как IPython, QtConsole и Jupyter Notebook, предоставляя среду для анализа данных, где есть все, что можно найти, например в Mathematica, IDL или MATLAB.
Гений создателей этой библиотеки в использовании уже доступных, зарекомендовавших себя инструментов из области науки. И это не ограничивается лишь режимом исполнения MATLAB, но также моделями текстового представления научных выражений и символов LaTeX. Благодаря своим возможностям по представлению научных выражений LaTeX был незаменимым элементом научных публикаций и документаций, в которых требуются такие визуальные репрезентации, как интегралы, объединения и производные. А matplotlib интегрирует этот инструмент для улучшения качества отображения.
Не стоит забывать о том, что matplotlib — это не отдельное приложение, а библиотека такого языка программирования, как Python. Поэтому она на полную использует его возможности. Matplotlib воспринимается как графическая библиотека, позволяющая программными средствами настраивать визуальные элементы, из которых состоят графики, и управлять ими. Способность запрограммировать визуальное представление позволяет управлять воспроизводимостью данных в разных средах особенно при изменениях или обновлениях.
А поскольку matplotlib — это библиотека Python, она позволяет на полную использовать потенциал остальных библиотек языка. Чаще всего работе с анализом данных matplotlib взаимодействует с набором других библиотек, таких как NumPy и pandas, но можно добавлять и другие.
Наконец, графическое представление из этой библиотеки можно экспортировать в самые распространенные графические форматы (PNG и SVG) и затем использовать в других приложениях, документах, в сети и так далее.
Установка
Если его нужно установить прямо, то команды зависят от операционной системы
В системах Debian-Ubuntu:
В macOS или Windows нужно использовать pip
IPython и IPython QtConsole
Для знакомства со всеми инструментами мира Python часто используют IPython из терминала или QtConsole. Все благодаря тому, что IPython позволяет использовать интерактивность улучшенного терминала и интегрировать графику прямо в консоль.
Для запуска сессии IPython нужно использовать следующую команду:
Если же используется Jupyter QtConsole с возможностью отображения графики вместе с командами, то нужна эта:
На экране тут же отобразится новое окно с запущенной сессией IPython.
Однако ничто не мешает использовать стандартную сессию Python. Все примеры дальше будут работать и в таком случае.
Архитектура matplotlib
Одна из основных задач, которую выполняет matplotlib — предоставление набора функций и инструментов для представления и управления Figure (так называется основной объект) вместе со всеми внутренними объектами, из которого он состоит. Но в matplotlib есть также инструменты для обработки событий и, например, анимации. Благодаря им эта библиотека способна создавать интерактивные графики на основе событий по нажатию кнопки или движению мыши.
Архитектура matplotlib логически разделена на три слоя, расположенных на трех уровнях. Коммуникация непрямая — каждый слой может взаимодействовать только с тем, что расположен под ним, но не над.
Слой бэкенда
Слой Backend является нижним на диаграмме с архитектурой всей библиотеки. Он содержит все API и набор классов, отвечающих за реализацию графических элементов на низком уровне.
Художественный слой
Средним слоем выступает художественный ( artist ). Все элементы, составляющие график, такие как название, метки осей, маркеры и так далее, являются экземплярами этого объекта. Каждый из них играет свою роль в иерархической структуре.
Есть два художественных класса: примитивный и составной.
На этом уровне часто приходится иметь дело с объектами, занимающими высокое положение в иерархии: график, система координат, оси. Поэтому важно полностью понимать, какую роль они играют. Следующее изображение показывает три основных художественных (составных объекта), которые часто используются на этом уровне.
Слой сценария (pyplot)
pylab и pyplot
Pylab объединяет функциональность pyplot с возможностями NumPy в одном пространстве имен, поэтому отдельно импортировать NumPy не нужно. Более того, при импорте pylab функции из pyplot и NumPy можно вызывать без ссылки на модуль (пространство имен), что похоже на MATLAB.
Пакет pyplot предлагает классический интерфейс Python для программирования, имеет собственное пространство имеет и требует отдельного импорта NumPy. В последующих материалах используется этот подход. Его же применяет большая часть программистов на Python.
Matplotlib. Урок 1. Быстрый старт
Первый урок из цикла, посвященному библиотеке для визуализации данных Matplotlib. В рамках данного урока будут рассмотрены такие вопросы как: установка библиотеки, построение линейного графика, несколько графиков на одном и на разных полях, построение диаграммы для категориальных данных и обзор основных элементов графика.
Установка
Варианты установки Matplotlib
Установка Matplotlib через менеджер pip
Второй вариант – это воспользоваться менеджером pip и установить Matplotlib самостоятельно, для этого введите в командной строке вашей операционной системы следующие команды:
Проверка установки
Для проверки того, что все у вас установилось правильно, запустите интерпретатор Python и введите в нем следующее:
После этого можете проверить версию библиотеки (она скорее всего будет отличаться от приведенной ниже):
Быстрый старт
Если вы работаете в Jupyter Notebook для того, чтобы получать графики рядом с ячейками с кодом необходимо выполнить специальную magic команду после того, как импортируете matplotlib ::
Результат работы выглядеть будет так, как показано на рисунке ниже.
Пример, аналогичный тому, что представлен на рисунке выше, для отдельного Python файла будет выглядеть так:
В результате получите график в отдельном окне.
Далее мы не будем останавливаться на особенностях использования magic команды, просто запомните, если вы используете Jupyter notebook при работе с Matplotlib вам обязательно нужно включить %matplotlib inline.
Построение графика
Для начал построим простую линейную зависимость, дадим нашему графику название, подпишем оси и отобразим сетку. Код программы:
В результате получим следующий график:
Несколько графиков на одном поле
Построим несколько графиков на одном поле, для этого добавим квадратичную зависимость:
В приведенном примере в функцию plot() последовательно передаются два массива для построения первого графика и два массива для построения второго, при этом, как вы можете заметить, для обоих графиков массив значений независимой переменной x один и то же.
Несколько разделенных полей с графиками
Третья, довольно часто встречающаяся задача – это отобразить два или более различных поля, на которых будет отображено по одному или более графику.
Построим уже известные нам две зависимость на разных полях.
Здесь мы воспользовались новыми функциями:
figure() – функция для задания глобальных параметров отображения графиков. В нее, в качестве аргумента, мы передаем кортеж, определяющий размер общего поля.
subplot() – функция для задания местоположения поля с графиком. Существует несколько способов задания областей для вывода через функцию subplot() мы воспользовались следующим: первый аргумент – количество строк, второй – столбцов в формируемом поле, третий – индекс (номер поля, считаем сверху вниз, слева направо).
Построение диаграммы для категориальных данных
До этого мы строили графики по численным данным, т.е. зависимая и независимая переменные имели числовой тип. На практике довольно часто приходится работать с данными нечисловой природы – имена людей, название фруктов, и т.п.
Построим диаграмму на которой будет отображаться количество фруктов в магазине:
К этому моменту, если вы самостоятельно попробовали запустить приведенные выше примеры, у вас уже должно сформировать некоторое понимание того, как осуществляется работа с этой библиотекой.
Основные элементы графика
Корневым элементом при построения графиков в системе Matplotlib является Фигура ( Figure ). Все, что нарисовано на рисунке выше является элементами фигуры. Рассмотрим ее составляющие более подробно.
На рисунке представлены два графика – линейный и точечный. Matplotlib предоставляет огромное количество различных настроек, которые можно использовать для того, чтобы придать графику вид, который вам нужен: цвет, толщина и тип линии, стиль линии и многое другое, все это мы рассмотрим в ближайших статьях.
Вторым, после непосредственно самого графика, по важности элементом фигуры являются оси. Для каждой оси можно задать метку (подпись), основные ( major ) и дополнительные ( minor ) тики, их подписи, размер и толщину, также можно задать диапазоны по каждой из осей.
Следующими элементами фигуры, которые значительно повышают информативность графика являются сетка и легенда. Сетка также может быть основной ( major ) и дополнительной ( minor ). Каждому типу сетки можно задавать цвет, толщину линии и тип. Для отображения сетки и легенды используются соответствующие команды.
Ниже представлен код, с помощью которого была построена фигура, изображенная на рисунке:
Если в данный момент вам многое кажется непонятным – не переживайте, далее мы разберем подробно особенности настройки и использования всех элементов представленных на поле с графиками.
P.S.
Matplotlib — Краткое руководство
Matplotlib — один из самых популярных пакетов Python, используемых для визуализации данных. Это кроссплатформенная библиотека для создания 2D графиков из данных в массивах. Matplotlib написан на Python и использует NumPy, числовое математическое расширение Python. Он предоставляет объектно-ориентированный API, который помогает встраивать графики в приложения, используя наборы инструментов Python GUI, такие как PyQt, WxPythonotTkinter. Он также может использоваться в оболочках Python и IPython, ноутбуках Jupyter и серверах веб-приложений.
Matplotlib имеет процедурный интерфейс под названием Pylab, который похож на MATLAB, проприетарный язык программирования, разработанный MathWorks. Matplotlib вместе с NumPy можно рассматривать как эквивалент MATLAB с открытым исходным кодом.
Matplotlib был первоначально написан Джоном Д. Хантером в 2003 году. Текущая стабильная версия 2.2.0 выпущена в январе 2018 года.
Matplotlib — Настройка среды
Matplotlib и его пакеты зависимостей доступны в виде пакетов wheel в стандартных репозиториях пакетов Python и могут быть установлены в системах Windows, Linux, а также MacOS с помощью диспетчера пакетов pip.
Incase версии Python 2.7 или 3.4 установлены не для всех пользователей, необходимо установить распространяемые пакеты Microsoft Visual C ++ 2008 (64-разрядная или 32-разрядная версия для Python 2.7) или Microsoft Visual C ++ 2010 (64-разрядная или 32-разрядная версия для Python 3.4).
Если вы используете Python 2.7 на Mac, выполните следующую команду —
После выполнения вышеприведенной команды подпроцесс 32 — зависимость может быть скомпилирован.
В чрезвычайно старых версиях Linux и Python 2.7 может потребоваться установить основную версию подпроцесса32.
Matplotlib требует большого количества зависимостей —
При желании вы также можете установить несколько пакетов, чтобы активировать лучшие инструменты интерфейса пользователя.
Для лучшей поддержки формата вывода анимации и форматов файлов изображений, LaTeX и т. Д. Вы можете установить следующее:
Матплотлиб — Анаконда дистрибуция
Anaconda — это бесплатный и открытый исходный код языков программирования Python и R для крупномасштабной обработки данных, прогнозной аналитики и научных вычислений. Распределение делает управление пакетами и развертывание простым и легким. Matplotlib и множество других полезных (data) научных инструментов являются частью дистрибутива. Версии пакетов управляются системой управления пакетами Conda. Преимущество Anaconda заключается в том, что у вас есть доступ к более чем 720 пакетам, которые можно легко установить с помощью Andaonda Conda, менеджера пакетов, зависимостей и среды.
Дистрибутив Anaconda доступен для установки по адресу https://www.anaconda.com/download/. Для установки в Windows доступны 32 и 64-битные бинарные файлы —
Установка является довольно простым процессом на основе мастера. Вы можете выбрать между добавлением Anaconda в переменную PATH и регистрацией Anaconda в качестве Python по умолчанию.
Для установки в Linux загрузите установщики для 32-разрядных и 64-разрядных установщиков со страницы загрузок —
Теперь запустите следующую команду из терминала Linux —
Canopy и ActiveState — наиболее востребованные решения для Windows, macOS и распространенных платформ Linux. Пользователи Windows могут найти опцию в WinPython.
Matplotlib — ноутбук Юпитер
Jupyter — это аббревиатура, означающая Julia, Python и R. Эти языки программирования были первыми целевыми языками приложения Jupyter, но в настоящее время технология ноутбука также поддерживает многие другие языки.
В 2001 году Фернандо Перес начал разработку Ipython. IPython — это командная оболочка для интерактивных вычислений на нескольких языках программирования, изначально разработанная для Python.
Рассмотрим следующие возможности, предоставляемые IPython —
Интерактивные оболочки (на основе терминала и Qt).
Записная книжка на основе браузера с поддержкой кода, текста, математических выражений, встроенных графиков и других средств массовой информации.
Поддержка интерактивной визуализации данных и использование инструментария GUI.
Гибкие, встраиваемые интерпретаторы для загрузки в собственные проекты.
Интерактивные оболочки (на основе терминала и Qt).
Записная книжка на основе браузера с поддержкой кода, текста, математических выражений, встроенных графиков и других средств массовой информации.
Поддержка интерактивной визуализации данных и использование инструментария GUI.
Гибкие, встраиваемые интерпретаторы для загрузки в собственные проекты.
В 2014 году Фернандо Перес анонсировал дополнительный проект от IPython под названием Project Jupyter. IPython будет продолжать существовать как оболочка Python и ядро для Jupyter, в то время как блокнот и другие не зависящие от языка части IPython будут перемещаться под именем Jupyter. Jupyter добавил поддержку для Julia, R, Haskell и Ruby.
Чтобы запустить ноутбук Jupyter, откройте навигатор Anaconda (графический интерфейс пользователя на рабочем столе, включенный в Anaconda, который позволяет запускать приложения и легко управлять пакетами, средами и каналами Conda без необходимости использования команд командной строки).
Навигатор отображает установленные компоненты в дистрибутиве.
Запустите Jupyter Notebook из навигатора —
Вы увидите открытие приложения в веб-браузере по следующему адресу — http: // localhost: 8888.
Вы, вероятно, хотите начать с создания нового ноутбука. Вы можете легко сделать это, нажав на кнопку «Создать» на вкладке «Файлы». Вы видите, что у вас есть возможность сделать обычный текстовый файл, папку и терминал. Наконец, вы также увидите возможность сделать ноутбук на Python 3.
Matplotlib — Pyplot API
Новый блокнот без названия с расширением .ipynb (расшифровывается как блокнот IPython) отображается на новой вкладке браузера.
matplotlib.pyplot — это набор функций командного стиля, которые делают Matplotlib похожим на MATLAB. Каждая функция Pyplot вносит некоторые изменения в фигуру. Например, функция создает фигуру, область построения на рисунке, строит некоторые линии в области построения, украшает график метками и т. Д.
Типы участков
Сделайте барный сюжет.
Сделайте горизонтальный линейный график.
Сделать коробку и усы сюжет.
Создайте 2D гистограмму.
Постройте круговую диаграмму.
Нанесите линии и / или маркеры на оси.
Составьте точечный график x против y.
Рисует сложенную область участка.
Сделайте пошаговый сюжет.
Постройте двумерное поле стрелок.
Сделайте барный сюжет.
Сделайте горизонтальный линейный график.
Сделать коробку и усы сюжет.
Создайте 2D гистограмму.
Постройте круговую диаграмму.
Нанесите линии и / или маркеры на оси.
Составьте точечный график x против y.
Рисует сложенную область участка.
Сделайте пошаговый сюжет.
Постройте двумерное поле стрелок.
Функции изображения
Прочитать изображение из файла в массив.
Сохраните массив как в файле изображения.
Покажите изображение на осях.
Прочитать изображение из файла в массив.
Сохраните массив как в файле изображения.
Покажите изображение на осях.
Функции оси
Добавьте оси к фигуре.
Добавьте текст к осям.
Установить заголовок текущих осей.
Установите метку оси x текущей оси.
Получить или установить пределы х текущих осей.
Получить или установить x-пределы текущего местоположения галочек и меток.
Установите метку оси Y текущей оси.
Получить или установить Y-пределы текущих осей.
Установите масштаб оси Y.
Получите или установите y-пределы текущего местоположения галочки и меток.
Добавьте оси к фигуре.
Добавьте текст к осям.
Установить заголовок текущих осей.
Установите метку оси x текущей оси.
Получить или установить пределы х текущих осей.
Получить или установить x-пределы текущего местоположения галочек и меток.
Установите метку оси Y текущей оси.
Получить или установить Y-пределы текущих осей.
Установите масштаб оси Y.
Получите или установите y-пределы текущего местоположения галочки и меток.
Функции рисунка
Добавьте текст к рисунку.
Создает новую фигуру.
Сохранить текущий рисунок.
Закройте окно фигуры.
Добавьте текст к рисунку.
Создает новую фигуру.
Сохранить текущий рисунок.
Закройте окно фигуры.
Matplotlib — простой сюжет
В этой главе мы узнаем, как создать простой график с помощью Matplotlib.
Теперь мы покажем простой линейный график угла в радианах относительно его значения синуса в Matplotlib. Начнем с того, что модуль Pyplot из пакета Matplotlib импортируется с псевдонимом plt по договоренности.
Далее нам нужен массив чисел для построения. Различные функции массива определены в библиотеке NumPy, которая импортируется с псевдонимом np.
Теперь мы получаем ndarray объект углов между 0 и 2π, используя функцию arange () из библиотеки NumPy.
Объект ndarray служит значениями на оси x графика. Соответствующие значения синусов углов в x, которые будут отображены на оси y, получаются с помощью следующего оператора —
Значения из двух массивов построены с использованием функции plot ().
Вы можете установить название графика и метки для осей x и y.
Окно просмотра графика вызывается функцией show () —
Полная программа выглядит следующим образом —
Когда вышеуказанная строка кода выполняется, отображается следующий график —
Теперь используйте ноутбук Jupyter с Matplotlib.
Запустите блокнот Jupyter из навигатора Anaconda или из командной строки, как описано ранее. В ячейке ввода введите операторы импорта для Pyplot и NumPy —
Чтобы отобразить результаты печати внутри самой записной книжки (а не в отдельной программе просмотра), введите следующее волшебное утверждение —
Получите x как ndarray объект, содержащий углы в радианах от 0 до 2π, а y как синусоидальную величину каждого угла —
Установите метки для осей X и Y, а также название графика —
Наконец, выполните функцию plot () для генерации синусоидального изображения в записной книжке (нет необходимости запускать функцию show ()) —
После выполнения последней строки кода отображается следующий вывод:
Matplotlib — модуль PyLab
PyLab — это процедурный интерфейс к библиотеке объектно-ориентированных графиков Matplotlib. Matplotlib — это целый пакет; matplotlib.pyplot — это модуль в Matplotlib; PyLab — это модуль, который устанавливается вместе с Matplotlib.
PyLab — это удобный модуль, который массово импортирует matplotlib.pyplot (для построения графиков) и NumPy (для математики и работы с массивами) в одном пространстве имен. Хотя во многих примерах используется PyLab, он больше не рекомендуется.
Основы печати
Построение кривых выполняется с помощью команды plot. Требуется пара массивов одинаковой длины (или последовательности) —
Выше строка кода генерирует следующий вывод —
Чтобы отобразить символы, а не линии, укажите дополнительный строковый аргумент.
Теперь рассмотрим выполнение следующего кода —
Он отображает красные точки, как показано ниже —
Участки могут быть наложены. Просто используйте несколько команд заговора. Используйте clf (), чтобы очистить график.
Выше строка кода генерирует следующий вывод —
Matplotlib — объектно-ориентированный интерфейс
Основная идея использования более формального объектно-ориентированного метода состоит в том, чтобы создавать объекты фигур, а затем просто вызывать методы или атрибуты этого объекта. Этот подход помогает лучше справляться с холстом, на котором есть несколько графиков.
В объектно-ориентированном интерфейсе Pyplot используется только для нескольких функций, таких как создание фигур, а пользователь явно создает и отслеживает объекты фигур и осей. На этом уровне пользователь использует Pyplot для создания фигур, и с помощью этих фигур можно создавать один или несколько объектов осей. Эти объекты осей затем используются для большинства графических действий.
Для начала мы создаем экземпляр фигуры, который предоставляет пустой холст.
Теперь добавьте оси к фигуре. Метод add_axes () требует объекта списка из 4 элементов, соответствующих левому, нижнему, ширине и высоте фигуры. Каждое число должно быть от 0 до 1 —
Установить метки для осей X и Y, а также заголовок —
Вызвать метод plot () объекта оси.
Если вы используете ноутбук Jupyter, должна быть выпущена встроенная директива% matplotlib; функция otherwistshow () модуля pyplot отображает график.
Попробуйте выполнить следующий код —
Выход
Выше строка кода генерирует следующий вывод —
Тот же код при запуске в блокноте Jupyter показывает вывод, как показано ниже —
Matplotlib — класс рисунков
Модуль matplotlib.figure содержит класс Figure. Это контейнер верхнего уровня для всех элементов графика. Создание объекта Figure осуществляется путем вызова функции figure () из модуля pyplot —
В следующей таблице приведены дополнительные параметры —
| Figsize | (ширина, высота) кортеж в дюймах |
| точек на дюйм | Точек на дюймы |
| Facecolor | Рисунок патча лицевого цвета |
| Edgecolor | Рисунок края пятна цвета |
| Ширина линии | Ширина линии края |
Matplotlib — класс топоров
Объект оси — это область изображения с пространством данных. Данная фигура может содержать много осей, но данный объект осей может быть только на одной фигуре. Оси содержат два (или три в случае 3D) объекта Оси. Класс Axes и его функции-члены являются основной точкой входа в работу с интерфейсом OO.
Объект Axes добавляется к рисунку путем вызова метода add_axes (). Он возвращает объект осей и добавляет оси в позиции rect [left, bottom, width, height], где все величины выражены в долях ширины и высоты фигуры.
параметр
Ниже приведен параметр для класса Axes —
rect — последовательность из четырех величин [влево, низ, ширина, высота].
rect — последовательность из четырех величин [влево, низ, ширина, высота].
Следующие функции-члены класса осей добавляют разные элементы в plot —
легенда
Метод legend () класса осей добавляет легенду на график. Требуется три параметра —
Где метки представляют собой последовательность строк и обрабатывают последовательность экземпляров Line2D или Patch. loc может быть строкой или целым числом, указывающим местоположение легенды.
| Строка местоположения | Код местоположения |
|---|---|
| Лучший | 0 |
| верхний правый | 1 |
| верхний левый | 2 |
| нижний левый | 3 |
| Нижний правый | 4 |
| Правильно | 5 |
| Центр слева | 6 |
| Правый центр | 7 |
| нижний центр | 8 |
| верхний центр | 9 |
| Центр | 10 |
axes.plot ()
Это основной метод класса осей, который отображает значения одного массива относительно другого в виде линий или маркеров. Метод plot () может иметь необязательный аргумент строки формата для указания цвета, стиля и размера линии и маркера.
Цветовые коды
| символ | цвет |
|---|---|
| «Б» | синий |
| ‘г’ | зеленый |
| ‘р’ | красный |
| «Б» | синий |
| «С» | Cyan |
| «М» | фуксин |
| «У» | желтый |
| «К» | черный |
| «Б» | синий |
| «Ш» | белый |
Коды маркеров
| символ | Описание |
|---|---|
| » | Маркер точки |
| «О» | Маркер круга |
| ‘Икс’ | Маркер X |
| ‘D’ | Алмазный маркер |
| ‘ЧАС’ | Маркер шестиугольника |
| ‘S’ | Квадратный маркер |
| ‘+’ | Плюс маркер |
Стили линий
| символ | Описание |
|---|---|
| ‘-‘ | Сплошная линия |
| ‘-‘ | Пунктир |
| ‘-‘. | Пунктирная линия |
| ‘:’ | Пунктирная линия |
| ‘ЧАС’ | Маркер шестиугольника |
В следующем примере показаны расходы на рекламу и продажи телевизоров и смартфонов в виде линейных графиков. Линия, представляющая телевизор, представляет собой сплошную линию с желтым цветом и квадратными маркерами, а линия смартфона — пунктирная линия с зеленым цветом и круговым маркером.
Когда приведенная выше строка кода выполняется, она создает следующий график —
Матплотлиб — Мультиплоты
В этой главе мы научимся создавать несколько сюжетов на одном холсте.
Функция subplot () возвращает объект оси в заданной позиции сетки. Сигнатура Call этой функции —
На текущем рисунке функция создает и возвращает объект Axes с указателем позиции сетки nrows по ncolsaxes. Индексы изменяются от 1 до nrows * ncols с приращением в главном порядке строк. Если значение параметраrow, ncols и index меньше 10, индексы также могут быть заданы как одно объединенное, threedigitnumber.
Например, как вспомогательный участок (2, 3, 3), так и вспомогательный участок (233) создают оси в верхнем правом углу текущей фигуры, занимая половину высоты фигуры и треть ширины фигуры.
Создание подзаголовка приведет к удалению любого ранее существующего подплота, который перекрывается с ним за пределами общей границы.
Выше строка кода генерирует следующий вывод —
Функция add_subplot () класса figure не будет перезаписывать существующий график —
Когда приведенная выше строка кода выполняется, она генерирует следующий вывод —
Вы можете добавить график вставки на том же рисунке, добавив другой объект осей на том же рисунке.
После выполнения вышеупомянутой строки кода генерируется следующий вывод:
Matplotlib — Функция Subplots ()
API Pyplot в Matplotlib имеет вспомогательную функцию под названием subplots (), которая действует как служебная оболочка и помогает создавать общие макеты подзаговоров, включая объект фигуры, за один вызов.
Два целочисленных аргумента этой функции задают количество строк и столбцов сетки подзаговоров. Функция возвращает объект фигурки и кортеж, содержащий объекты осей, равные nrows * ncols. Каждый объект оси доступен по его индексу. Здесь мы создаем участок из 2 строк по 2 столбца и отображаем 4 разных графика в каждом из них.
Выше строка кода генерирует следующий вывод —
Функция Matplotlib — Subplot2grid ()
Эта функция дает больше гибкости при создании объекта осей в определенном месте сетки. Он также позволяет охватывать объект оси по нескольким строкам или столбцам.
В следующем примере сетка 3X3 объекта рисунка заполнена объектами осей различных размеров в интервалах строк и столбцов, каждый из которых показывает свой график.
После выполнения вышеуказанного строкового кода генерируется следующий вывод:
Матплотлиб — Сетки
Функция grid () объекта axes устанавливает или отключает видимость сетки внутри фигуры. Вы также можете отобразить основные / второстепенные (или оба) галочки сетки. Дополнительно свойства color, linestyle и linewidth могут быть установлены в функции grid ().
Matplotlib — Оси форматирования
Иногда одна или несколько точек намного больше, чем объем данных. В таком случае масштаб оси должен быть логарифмическим, а не нормальным. Это логарифмическая шкала. В Matplotlib это возможно, установив для свойства xscale или vscale объекта axes значение ‘log’.
Иногда требуется также показать некоторое дополнительное расстояние между номерами осей и меткой оси. Для свойства labelpad любой оси (x, y или обоих) можно установить желаемое значение.
Обе вышеуказанные функции демонстрируются с помощью следующего примера. Подплощадка справа имеет логарифмическую шкалу, а слева — ось x с меткой на большем расстоянии.
Оси осей — это линии, соединяющие отметки осей, обозначающие границы области графика. Объект оси имеет шипы, расположенные сверху, снизу, слева и справа.
Каждый позвоночник можно отформатировать, указав цвет и ширину. Любое ребро можно сделать невидимым, если его цвет не задан.
Matplotlib — установка пределов
На следующем графике показаны автомасштабированные пределы осей x и y:
Теперь мы отформатируем пределы по оси х (от 0 до 10) и оси у (от 0 до 10000) —
Matplotlib — Установка меток и меток
Тики — это маркеры, обозначающие точки данных на осях. До сих пор Matplotlib — во всех наших предыдущих примерах — автоматически брал на себя задачу расстановки точек на оси. Стандартные локаторы и форматеры тиков Matplotlib спроектированы так, чтобы их было достаточно во многих распространенных ситуациях. Положение и метки галочек могут быть явно указаны в соответствии с конкретными требованиями.
Функция xticks () и yticks () принимает объект списка в качестве аргумента. Элементы в списке обозначают позиции на соответствующем действии, где будут отображаться галочки.
Этот метод помечает точки данных в заданных позициях галочками.
Аналогично, метки, соответствующие галочкам, могут быть установлены функциями set_xlabels () и set_ylabels () соответственно.
Это будет отображать текстовые метки под маркерами на оси х.
Следующий пример демонстрирует использование галочек и меток.
Matplotlib — Двойные Оси
Считается полезным иметь двойные оси x или y на фигуре. Более того, при построении кривых с различными единицами вместе. Matplotlib поддерживает это с помощью функций twinx и twiny.
В следующем примере график имеет двойные оси Y, одна из которых показывает exp (x), а другая — log (x) —
Матплотлиб — Барный участок
Гистограмма или гистограмма — это диаграмма или диаграмма, которая представляет категориальные данные с прямоугольными столбцами с высотами или длинами, пропорциональными значениям, которые они представляют. Бары могут быть нанесены вертикально или горизонтально.
Гистограмма показывает сравнения между отдельными категориями. Одна ось диаграммы показывает конкретные категории, которые сравниваются, а другая ось представляет измеренное значение.
Matplotlib API предоставляет функцию bar (), которую можно использовать в стиле MATLAB, а также объектно-ориентированный API. Сигнатура функции bar () для использования с объектом axes выглядит следующим образом:
Функция создает гистограмму со связанным прямоугольником размера (x-width = 2; x + width = 2; bottom; bottom + height).
Параметры для функции —
| Икс | последовательность скаляров, представляющих координаты х баров. выровняйте элементы управления, если x — центр полосы (по умолчанию) или левый край. |
| рост | скаляр или последовательность скаляров, представляющих высоту (и) столбцов. |
| ширина | скаляр или массив, необязательно. ширина (с) баров по умолчанию 0,8 |
| низ | скаляр или массив, необязательно. координаты y столбцов по умолчанию Нет. |
| выравнивать | <‘center’, ‘edge’>, необязательно, по умолчанию ‘center’ |
Функция возвращает контейнерный объект Matplotlib со всеми барами.
Ниже приведен простой пример графика бара Matplotlib. Показывает количество студентов, обучающихся на различных курсах, предлагаемых в институте.
При сравнении нескольких величин и при изменении одной переменной нам может потребоваться столбчатая диаграмма, на которой у нас есть столбцы одного цвета для одного количественного значения.
Мы можем построить несколько гистограмм, играя с толщиной и положением баров. Переменная данных содержит три ряда из четырех значений. Следующий скрипт покажет три гистограммы из четырех баров. Стержни будут иметь толщину 0,25 единиц. Каждая гистограмма будет сдвинута на 0,25 единицы от предыдущей. Объект данных представляет собой мультидикт, содержащий количество студентов, обучающихся в трех филиалах инженерного колледжа за последние четыре года.
Столбчатая диаграмма с накоплением объединяет столбцы, которые представляют разные группы друг над другом. Высота полученного столбца показывает объединенный результат групп.
Необязательный нижний параметр функции pyplot.bar () позволяет указать начальное значение для бара. Вместо того, чтобы работать от нуля до значения, оно будет идти снизу до значения. Первый вызов pyplot.bar () отображает синие полосы. Второй вызов pyplot.bar () отображает красные столбцы, причем нижняя часть синих столбцов находится сверху красных столбцов.
Матплотлиб — Гистограмма
Гистограмма является точным представлением распределения числовых данных. Это оценка распределения вероятностей непрерывной переменной. Это своего рода гистограмма.
Чтобы построить гистограмму, выполните следующие действия.
Контейнеры обычно указываются как последовательные непересекающиеся интервалы переменной.
Функция matplotlib.pyplot.hist () строит гистограмму. Он вычисляет и рисует гистограмму х.
параметры
В следующей таблице перечислены параметры для гистограммы —























































