Matplotlib – популярная библиотека Python, используемая разработчиками для визуализации информации и анализа данных. Она применяется при создании:
- линейных графиков;
- круговых диаграмм;
- построчных гистограмм и других.
Далее предстоит научиться импортировать библиотеку, а также рассмотреть на ее примере ключевые способы виртуализации.
Matplotlib – это…
Matplotlib – это пакет виртуализации данных в Python. Он поддерживает работу с информацией сразу на нескольких уровнях:
- Через модуль Pyplot. Он будет рассматривать имеющийся график в качестве единого целого.
- При помощи объектно-ориентированного интерфейса. В нем каждая фигура/ее часть рассматривается в виде отдельного объекта. Такая концепция позволяет выборочно изменять их свойства, а также отображение.
Matplotlib – инструмент, поддерживающий работу с двумерной и трехмерной графикой. Он написан и поддерживался Джоном Хантером. Изначально распространялся под BSD-подобной лицензией. Его создание – это результат подражания графическим командам MATLAB.
Последняя поддерживаемая стабильная версия Matplotlib – 2.1.1 Для нее потребуется:
- Python 2.7 версии или новее 3.4;
- NumPy – от 1.7.1 версии и выше.
Далее предстоит работать с Matplotlib to Pyplot. Информация, представленная в статье, больше подходит тем, кто имеет хотя бы малейшее представление о NumPy. В основном предстоит пользоваться модулем numpy.random, который позволяет получать «тестовые» данные, а также рисовать примеры из источников статистического характера.
Где используется
Matplotlib – это инструмент to data visualization. с его помощью можно представить информацию любой сложности в простом и понятном виде. Библиотека дает возможность не только формировать различные графики, но и комбинировать их.
При помощи дополнительных библиотек удается расширить стандартные возможности по анализу данных. Пример – модуль Cartopy. Он позволит работать с картографическими информационными единицами.
Matplotlib – это не просто готовое решение для графиков и визуализации. Библиотека является основной to других библиотек. Пример – Seaborn. Он упрощает процедуру построения графиков, обладает большим спектром возможностей для косметического улучшения внешнего вида выводимых результатов. В его основе заложена рассматриваемая библиотека. Она является незаменимым инструментом анализа информации.
Спектр возможностей
Matplotlib – это гибкий, легко конфигурируемый пакет. Он совместно с three libraries: SciPy, IPython и NumPy предоставляет функционал, сравнимый to Matlab. Сейчас он работает с несколькими графическими библиотеками, в состав которых включены PyGTK и wxWindows.
Поддерживает:
- графики;
- гистограммы и столбчатые диаграммы;
- диаграммы рассеяния;
- круговые диаграммы;
- диаграммы стебель-листья;
- градиентные поля;
- контурные графики;
- спектральные диаграммы.
Пользователи здесь смогут указывать не только координатные оси. В пакете поддерживаются надписи и пояснения, возможность использования логарифмических шкал, полярные координат.
Для трехмерной графики рекомендуется перейти to toolkit mplot3d. Существуют иные наборы инструментов для выполнения разных задач: для картографии, работы с Excel, для GTK.
В Matplotlib поддерживается возможность создания анимированных объектов. На первых порах соответствующий функционал не требуется. Им пользуются в единичных случаях.
Форматы изображений
При помощи рассматриваемой библиотеки пользователи смогут работать to graphics. Набор поддерживаемых форматов изображений может быть получен из словаря под названием FigureCanvasBase.filetypes. Наиболее распространенными форматами to Matplotlib Python служат:
- PNG;
- EMF;
- JPEG;
- PostScript;
- PDF;
- EPS;
- SVG и SVGZ;
- TIFF;
- RGBA.
Опираясь на пакетные классы допустимо создание других модулей. Пример – инструмент для генерирования искрографиков.
Связь с PyLab и Pyplot
При изучении рассматриваемой библиотеки можно встретить два модуля – to Pyplot и Pylab. Необходимо понимать, когда и какой вариант использовать в работе. Здесь необходимо запомнить следующее:
- Matplot – это специальный пакет для визуализации информации в Python.
- Pyplot – модуль, включенный to Matplot. Он отображается в программном коде в виде matplotlib.pyplot. Используется для автоматического создания осей, фигур и иных элементов без погружения в логику происходящего.
- Pylab – тоже включенный to Matplot модуль. Он устанавливается совместно с библиотекой. Одновременно импортирует Pyplot и NumPy для дальнейшей работы с массивами в интерактивной форме. Позволяет при использовании информации получать доступ к функциям, отвечающим за черчение.
Pylab – это пакет, который на практике в Matplot library почти не встречается. Раньше он использовался для облегчения перехода с Matlab to Matplot. Данный инструмент позволял обходиться без операторов импорта. Наиболее распространенным модулем выступает Pyplot.
Несколько слов о терминологии
Перед началом использования популярной library Питона предстоит запомнить несколько определений. Они помогут быстрее разобраться с исходными кодами предлагаемых примеров:
- Axes – область отображения информации. Может быть помечена как ось X, ось Y и так далее.
- Spines – линии, соединяющие точки Axes.
- Figure – законченное окно или страница. На соответствующем элементе располагается итоговый график.
Запомнить эти простые определения должен каждый разработчик. В противном случае интерпретация исходного кода to Python будет затруднена.
Начало работы
Matplot – универсальный инструмент, работающий через Питон на Windows, MacOS и Linux. Если программист использует Jupiter Notebook или Google Collab, дополнительная инициализация ни Python, ни рассматриваемого пакета не потребуется: они уже встроены в систему.
Установка
Чтобы написать исходный код to любой IDE (пример – в Visual Studio Code), необходимо сначала установить Python, а после – библиотеку Learn при помощи терминала:
Теперь можно приступить к непосредственному импорту Matplot:
Plt – это общепринятое сокращение. Оно встречается не только в учебниках, но и в официальной документации Питона.
Иерархия объектов
Ключевая особенность изучаемого инструмента – это наличие иерархии объектов. Под ней подразумевается, что каждый график будет основываться на древоподобную структуру элементов пакета.
Самым важным является объект Figure. Он представляет собой внешний контейнер to графики Matplot. Включает в себя несколько Axes в случае необходимости. Под «осями» понимаются настоящие графики.
Объект Figure – это своеобразный «ящик» для нескольких Axes. В порядке иерархии под «осями» располагаются элементы меньшего размера. К ним относят:
- отдельно изображенные линии;
- легенды;
- отметки;
- тестовые боксы.
Каждый компонент диаграммы – это собственный манипулируемый элемент to Python, вплоть до отметок и ярлыков.
Выше – наглядный пример иерархии в действии.
Линейный график
Далее работу с Matplotlib и его libraries предстоит рассматривать на основе наглядных примеров. Это поможет лучше усвоить информацию тем, кто ранее не работал с NumPy и Pyplot.
В качестве простого примера необходимо изобразить линейный график. Для него потребуется создать переменные – x и y. Они содержат координаты точек to оси x и y соответственно:
Теперь необходимо построить график, соединяющий заданные точки:
Выше – результат обработки соответствующего кодового фрагмента. В нем:
- plt.plot – это стандартная функция построения графика в соответствии с заданными значениями;
- plt.show() – команда, отвечающая за вывод визуализированной информации на экран (может отсутствовать).
Если не использовать show(), вместо красивого графического отображения линейного графика пользователь увидит разнообразную техническую информацию.
Теперь получившийся результат можно дополнить для удобства заголовком, а также подписями имеющихся осей:
Через Matplotlib допускается настройка отображения любых графиков. Пример – изменение цвета линии, выделение точек, координаты которых изначально были заданы разработчиком:
Выше – пример того, что получится, если внести соответствующие изменения to code. Заданные точки хорошо заметны, а их цвет, как и линии, изменился. Он стал зеленым.
Диаграммы рассеяния
Рассмотренный ранее пример показывал точки, которые не были переданы в массиве. Из-за этого получилось линейное отображение данных. В Matplotlib можно сформировать диаграмму рассеяния. Она необходима тогда, когда требуется оценить взаимосвязь одной переменной to другой. Их значения будут откладывать по разным осям.
В Matplotlib для построения диаграммы рассеяния необходимо прибегнуть to plt.scatter(). Эта функция будет в качестве аргументов принимать переменные с дискретными значениями:
Обработанный код будет выглядеть так:
Диаграмма рассеяния – это множество отдельно взятых точек на координатной плоскости.
Гистограммы
Еще один популярный и удобный метод to visualization – это столбчатые диаграммы (или гистограммы). Графики будут информировать пользователя о том, как меняются исходные данные. Гистограммы работают иначе. Они используются для отображения принципов распределения информации. Чем больше в диапазоне значений, тем выше окажется получившаяся полоса. Соблюдается полная пропорциональность.
Обычно при работе с гистограммами одна из осей отображает одну категорию, вторая соответствует ее дискретному значению.
Построить гистограмму можно несколькими способами. Первый вариант – это прибегнуть to hist(). Эта функция имеет два ключевых параметра:
- список значений, используемых для построения графика;
- количество диапазонов для распределения соответствующих точек.
Программный код будет выглядеть так:
Ниже – наглядный пример того, как будет выглядеть обработанный код:
А вот – столбчатая диаграмма, используемая для наглядной демонстрации величины прибыли по месяцам. Код будет таким:
А вот результат, выведенный на экран:
Теперь с помощью этой гистограммы можно увидеть динамику изменения прибыли по заданным пользователем месяцам.
Комбинирование
Matplotlib – инструмент, который дает массу возможностей виртуализации информации. В нем допускается объединение сразу нескольких типов графиков. Пример – линейную и гистограмму.
Вот – наглядный пример соответствующего кода. To столбцы гистограммы необходимо добавить точки, указывающие значения прибыли. Далее – соединить их:
На экране появится следующий результат:
Получившийся результат отображает необходимую информацию, но рекомендуется изменить некоторые его настройки. Связано это с тем, что линейную интерпретацию данных на темно-синем фоне видно очень плохо. Для исправления ситуации необходимо увеличить прозрачность гистограммы. За это отвечает параметр alpha.
Alpha может принимать разные значения:
- 0 – полная прозрачность;
- 1 – отсутствие прозрачности.
Значения, расположенные в диапазоне (0;1), указывают на степень прозрачности. Чем выше соответствующий показатель, тем «ярче» будет отображаемый на экране компонент.
Круговые
В Matplotlib можно рисовать круговые диаграммы. Они используются для отображения состава имеющихся групп. Пример – преобладание автомобилей на дорогах того или иного региона:
Выше – наглядный пример элементарной круговой диаграммы в Matplotlib. Информация здесь понятна, но не детализирована. Понять долю, приходящуюся на каждую имеющуюся марку, невозможно.
Исправить ситуацию можно путем добавления to pie параметра autopct:
В этот параметр необходимо передать формат отображения числа. Приведенный пример предписывает работу с целым числом и одним знаком можно запятой. Выше – итоговый результат обработки написанного в Matplotlib фрагмента.
Кривые
Еще один распространенный вариант – это рисование нескольких кривых на одном графике. Такая концепция в основном применяется для сравнения. В программном коде ситуация выглядит так:
Выше – наглядный пример получившегося результата.
Изменения и надписи
Ранее рассмотренные примеры были похожи друг на друга. На самом деле каждая виртуализация информации – это уникальный продукт работы Matplotlib. Он поддерживает возможность настройки цвета линии/точек, а также добавления надписей на график. Для этого используются параметры:
- color= ‘цвет’ – отвечает за выбор цвета, которым будет окрашен компонент;
- label= ‘значение’ – подпись к линиям.
Вот – наглядный пример кода, демонстрирующего изменение параметров элементов виртуализации:
Ниже – то, как это будет выглядеть после непосредственной обработки:
Здесь для улучшения возможности сравнения изменен цвет нарисованных кривых на красный и синий соответственно. В левой верхнем углу добавлены подписи. Они показывают, какой цвет и за какой спектр метаданных будет отвечать.
Тепловая карта
Если разработчик решил прибегнуть to Matplotlib, он получит доступ к совершенно разным инструментам и способам виртуализации. Кроме «стандартных» средств для виртуального отображения информации, здесь поддерживаются тепловые карты.
Это – средство, которое будет незаменимо при работе с географическими данными. Вот – наглядный пример его создания:
Выше – наглядный пример тепловой карты по заданным параметрам. Она может настраиваться по нуждам пользователя.
Сложная визуализация
Matplotlib поддерживает не только тепловые карты, но и достаточно сложные средства виртуализации. В качестве образца будет использоваться столбчатый график с накоплением. Такой компонент позволяет отслеживать соотношение динамику соотношения значений to одной переменной.
Здесь – образец для ситуации с устройствами, работающими на базах Android и Ios.Он поддерживает отслеживание соотношений в разные годы:
Данный способ to virtualize указывает на то, что соотношение устройств, находящихся под управлением Android и iOS постепенно меняется. Андроид-оборудования с течением времени становится на порядок больше.
Вероятные трудности
Matplotlib – функциональный и интересный инструмент. Он предоставляет средства для быстрой и качественной виртуализации, но его изучение может быть затруднено. Официальная документация у Matplotlib достаточно большая. Несмотря на это, сложности возникают по другим причинам:
- Размер библиотеки. Matplotlib сама по себе представлена порядком 70 000 строк кода.
- Вхождение в состав инструмента нескольких интерфейсов (способов для построения фигур на экране). Matplotlib умеет взаимодействовать с огромным количеством бэкендов – они отвечают за то, как фактически отобразятся диаграммы, а не только за внутренние структурные особенности.
- Часть официальной документации устарела. Matplotlib активно развивается. Она дорабатывается и обновляется до сих пор. Некоторые старые примеры из официальной документации и интернет-источников могут включать в себя примерно на 70% меньше программного кода по сравнению с современными версиями.
Несмотря на это, Matplotlib Python – это неплохой инструмент для работы с графиками. Полученные результаты обработки данных используются не только при анализе, но и разнообразных проектах, публикациях, документации.
Как выучить библиотеку
Самостоятельно освоить рассмотренную библиотеку бывает не так просто, особенно если необходимо работать с большими массивами информации. Здесь можно увидеть еще один наглядный образец использования Matplot. В Сети полно туториалов и примеров, а также сопутствующей документации по данному инструменту. Только часть из них устарела, а некоторые требуют значительных познаний в programming.
Лучше всего для быстрого погружения в выбранное направление не заниматься самообразованием, а отдать предпочтение специализированным дистанционным компьютерным курсам. Пример – от образовательного центра OTUS.
Это верный способ выучить не только Matplot, но и любой другой инструмент/фреймворк/библиотеку Питона. На специализированных компьютерных курсах «с нуля» пользователя научат профессионально пользоваться выбранным пакетом.
Дистанционные компьютерные курсы выделяются следующими чертами:
- Сжатые сроки обучения. Каждый курс рассчитан на срок от нескольких месяцев до года.
- Грамотно составленные программы, поданные понятным языком. Можно выбрать направление с учетом ранее приобретенного спектра знаний.
- Разнообразие направлений с возможностью их совмещения. Пользователи смогут учить не только Matplot, но и другие компоненты Питона. При желании – вовсе параллельно изучать совершенно другой язык разработки.
- Интересные домашние задания, многочисленная практика. Все это поможет не только научиться пользоваться инструментом разработки, но с поспособствует формированию качественного первого портфолио.
- Постоянное кураторство. Каждый курс ведется специалистом в том или ином направлении. Наставник всегда придет на помощь.
- Возможность совмещения с обыденной жизнью, основной работой и семьей. Все обучение строится на основании вебинара. Пропущенный урок пользователь сможет в любой момент посмотреть в режиме «онлайн».
При успешном прохождении курса пользователь не только будет знать, что такое for i, int и как работает Matplot, но и получит электронный сертификат для документального подтверждения приобретенных в процессе учебы навыков.
Приглашаем выбрать курс по востребованным IT-направлениям уже сегодня!