Визуализация данных в Python. Работа с библиотекой Matplotlib
Покупка
Тематика:
Программирование и алгоритмизация
Год издания: 2022
Кол-во страниц: 92
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7882-3176-1
Артикул: 809810.01.99
Рассмотрены возможности языка программирования Python в области визуализации данных. Для построения графиков использована библиотека Matplotlib. Приведены примеры построения двумерных и трехмерных графиков, гистограмм и диаграмм, а также рассмотрены вопросы форматирования построенных графиков и добавления на них графических примитивов. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подготовки 09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», «Вычислительная математика», «Прикладная математика», «Компьютерная графика».
Подготовлено на кафедре информатики и прикладной математики.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.02: Информационные системы и технологии
- 18.03.01: Химическая технология
- 28.03.02: Наноинженерия
- 29.03.04: Технология художественной обработки материалов
- 29.03.05: Конструирование изделий легкой промышленности
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации Казанский национальный исследовательский технологический университет А. Н. Титов, Р. Ф. Тазиева ВИЗУАЛИЗАЦИЯ ДАННЫХ В PYTHON РАБОТА C БИБЛИОТЕКОЙ MATPLOTLIB Учебно-методическое пособие Казань Издательство КНИТУ 2022
УДК 004.932(075) ББК 32.97я7 Т45 Печатается по решению редакционно-издательского совета Казанского национального исследовательского технологического университета Рецензенты: д-р техн. наук, проф. М. Х. Хайруллин канд. экон. наук, доц. О. С. Семичева Т45 Титов А. Н. Визуализация данных в Python. Работа с библиотекой Matplotlib : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во КНИТУ, 2022. – 92 с. ISBN 978-5-7882-3176-1 Рассмотрены возможности языка программирования Python в области визуа лизации данных. Для построения графиков использована библиотека Matplotlib. Приведены примеры построения двумерных и трехмерных графиков, гистограмм и диаграмм, а также рассмотрены вопросы форматирования построенных графиков и добавления на них графических примитивов. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подго товки 09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», «Вычислительная математика», «Прикладная математика», «Компьютерная графика». Подготовлено на кафедре информатики и прикладной математики. ISBN 978-5-7882-3176-1 © Титов А. Н., Тазиева Р. Ф., 2022 © Казанский национальный исследовательский технологический университет, 2022 УДК 004.932(075) ББК 32.97я7 2
О Г Л А В Л Е Н И Е Введение.........................................................................................................................4 1. ИЕРАРХИЯ ГРАФИЧЕСКИХ ОБЪЕКТОВ...........................................................6 2. ПОСТРОЕНИЕ ГРАФИКОВ В ДЕКАРТОВОЙ СИСТЕМЕ КООРДИНАТ....12 2.1. Метод plot.............................................................................................12 2.2. Точечный график. Метод scatter() .....................................................25 2.3. Построение ступенчатых графиков. Функция step.........................28 2.4. Стековый график. Метод stackplot ....................................................30 2.5. Stem-график .........................................................................................33 2.6. Закрашивание областей экрана. Методы fill и fill_between............34 3. ПОСТРОЕНИЕ ДИАГРАММ. ФУНКЦИИ BAR, HIST и PIE ...........................38 3.1. Функция hist.........................................................................................38 3.2. Функция bar..........................................................................................44 3.3. Функция pie..........................................................................................53 4. ФОРМАТИРОВАНИЕ ГРАФИКОВ.....................................................................56 4.1. Метод title.............................................................................................56 4.2. Функция legend....................................................................................58 4.3. Метод grid ............................................................................................61 4.4. Добавление линий на график. Методы vlines и hlines.....................62 4.5. Разметка осей. Методы xlabel и ylabel ..............................................63 4.6. Функция text.........................................................................................71 4.7. Выделение точек графика. Функция annotate ..................................73 5. ГРАФИКИ В ПОЛЯРНОЙ СИСТЕМЕ КООРДИНАТ .......................................75 6. ПОСТРОЕНИЕ 3D-ГРАФИКОВ...........................................................................81 6.1. Линейный график................................................................................81 6.2. Точечный график.................................................................................82 6.3. Каркасная поверхность.......................................................................83 6.4. Поверхность.........................................................................................85 Задания для самостоятельной работы.......................................................................89 Литература ...................................................................................................................91
В В Е Д Е Н И Е В настоящее время Python является одним из самых востребован ных языков программирования. Python используется в анализе данных, машинном обучении, DevOps и веб-разработке, а также в других сферах, включая разработку игр. Важной частью работы специалистов в области Data Science яв ляется визуализация данных. На ранних стадиях развития проекта часто необходимо выполнять первоначальный анализ данных (Exploratory data analysis – EDA) для выявления имеющихся закономерностей. Визуализация данных помогает представить большие и сложные наборы данных в простом и наглядном виде. Особенно это важно на этапе окончания проекта, так как необходимо суметь представить результаты его реализации в понятном даже для непрофессионалов виде. Python обладает большим количеством библиотек для наглядного представления данных: Matplotlib, Seaborn, Pandas, Plotly, Bokeh, Folium – и это далеко не полный перечень графических библиотек. Matplotlib – это библиотека для визуализации данных, написанная на языке Python и являющаяся, пожалуй, одной из самых популярных. Она представляет собой набор дополнительных модулей (библиотек) языка Python для построения разнообразных 2D- и 3D-графиков и диаграмм данных. Библиотека довольно проста в использовании, богата на инструменты и позволяет строить статические диаграммы за несколько строчек кода, именно за это ее так ценят Data Scientist. Кроме того, Matplotlib используют другие библиотеки в качестве обертки, например Pandas и Seaborn. Изначально Matplotlib планировался как свободная альтернатива MATLAB, где в одной среде имелись бы средства как для рисования, так и для численного анализа. Все это было реализовано в Matplotlib, для численного анализа часто бывает достаточным подключить модуль Numpy. Библиотека позволяет сохранять результаты в различных форматах, например Postscript, и, соответственно, вставлять изображения в документы TeX. Предоставляет API для встраивания своих графических объектов в приложения пользователя. В данном пособии авторы поставили перед собой цель: собрать имеющуюся в литературе информацию по работе с Matplotlib, переработать ее с учетом тех типов задач, которые решаются в преподаваемых авторами дисциплинах – информатике, информационных технологиях, программировании и обработке данных. Авторы надеются облегчить
восприятие изложенного материала, снабдив пособие большим количеством примеров и пояснений к ним. Пособие включает в себя шесть глав. В первой главе рассмотрена иерархия объектов Matplotlib: Figure→Axes→Axis. Во второй главе показано, как строятся графики на плоскости: кривые, координаты которых заданы в аналитическом или табличном виде, точечные графики, ступенчатые, стековые графики, stem-графики. В третьей главе приведены примеры построения гистограмм и круговых диаграмм. В четвертой главе рассмотрены вопросы форматирования графиков: добавление к ним заголовков, легенды, сетки, разметки осей, текста и аннотаций. В пятой главе приведены примеры построения графиков в полярной системе координат. В шестой главе показано, как можно строить трехмерные графики: линейные, точечные графики и поверхности. Материал, изложенный в пособии, может быть использован при проведении лабораторных занятий по информатике, информационным технологиям, обработке экспериментальных данных, вычислительной и прикладной математике. Используемая в пособии версия – Python 3.10.2. 5
1 . И Е Р А Р Х И Я Г Р А Ф И Ч Е С К И Х О Б Ъ Е К Т О В Для построения простейших двумерных графиков воспользуемся библиотекой Matplotlib. Она предоставляет методы для построения 2D- и 3D-графиков, диаграмм данных, которые в дальнейшем могут быть сохранены в различных форматах, например Postscript. Сохраненные изображения можно затем добавить в документы TeX. Также библиотека предоставляет API для встраивания своих графических объектов в приложения пользователей. Установить Matplotlib можно через менеджер пакетов pip. Для этого нужно ввести в командной строке вашей операционной системы следующие команды: python -m pip install -U pip python -m pip install -U matplotlib Первая из них обновит ваш менеджер пакетов, вторая установит Matplotlib со всеми необходимыми зависимостями. Если вы работаете в блокноте Google Colab, то этот этап пропус каем: библиотека уже установлена. После установки библиотеки нужно импортировать Matplotlib. Это делается командой: import matplotlib.pyplot as plt Любой рисунок в Matplotlib имеет вложенную структуру. Рисунок (Figure) – это объект самого верхнего уровня, на котором располагаются: области рисования (Axes); элементы рисунка Artists (заголовки, легенда и т. д.); основа-холст (Canvas). На рисунке может быть несколько областей рисования (Axes). Область рисования (Axes) относится к объекту следующего за Figure уровня. Это часть изображения с пространством данных. Каждая область рисования (Axes) содержит две (или три в случае трехмерных данных) координатные оси (Axis объектов), которые упорядочивают отображение данных. Координатная ось (Axis) определяет область изменения данных. На них наносятся деления или засечки (ticks) и подписи к делениям (ticklabels). Расположение делений определяется объектом Locator, а подписи делений обрабатывает объект Formatter. Конфигурация координатных осей заключается в комбинировании различных свойств объектов Locator и Formatter. Все элементы изображения унаследованы от класса Artists (модуль artist) и делятся на два типа: – примитивы – стандартные графические объекты на изображе нии: линия (класс Line2D), прямоугольник (класс Rectangle), текст (класс Text) и т. д.;
– контейнеры – объекты, внутри которых размещаются примитивы: координатная плоскость (класс Axes), оси (класс Axis) или изображение (класс Figure). Элементы рисунка Artists включают в себя такие объекты, как текст (Text), плоская линия (Line2D), фигура (Patch) и др. Когда происходит отображение рисунка (figure rendering), все элементы рисунка Artists наносятся на основу-холст (Canvas). Большая часть из них связывается с областью рисования Axes. Также элемент рисунка не может совместно использоваться несколькими областями Axes или быть перемещен с одной на другую1. Рис. 1.1. Основные элементы изображения в Matplotlib Корневым элементом при построении графиков в системе Matplotlib является изображение (Figure). Все, что нарисовано на рис. 1.1, является элементами изображения. Одним из способом создания изображения и координатной оси является функция pyplot.subplots(). Результатом работы этой функции является кортеж: fig – изображение (класс Figure) и ax – одна или несколько координатных плоскостей (класс Axes). Для вывода полученного изображения на экран в отдельном окне используется функция pyplot.show(). 1 Документация по Matplotlib: сайт. URL: https://matplotlib.org/stable/index.html; Борю С. Ю. Модули и пакеты в Python. Запорожье: ЗНУ, 2021. 286 с.; Scientific_graphics_in_python: сайт. URL: https://nbviewer.org/github/whitehorn/.
Типичный алгоритм построения изображения, как правило, включает следующие шаги: – создать объект Figure; – добавить координатную плоскость Axes (одну или несколько), используя объект Figure; – добавить на изображение графические примитивы, используя методы объекта Axes. Далее нужно отобразить и/или сохранить изображение2. Работа с Matplotlib основана на использовании графических окон и осей (оси позволяют задать некоторую графическую область). Все построения применяются к текущим осям. Это позволяет изображать несколько графиков в одном графическом окне. По умолчанию создается одно графическое окно figure(1) и одна графическая область subplot(111) в этом окне. Первое, что нужно сделать перед построением графика, – это со здать объект «Графическое окно». Подключаем библиотеку и выполняем команды кода в среде IDLE: import matplotlib.pyplot as plt fig, ax=plt.subplots() plt.show() Получаем графическое окно в IDLE (рис. 1.2). Рис. 1.2. Графическое окно в IDLE 2 Борю С. Ю. Указ. соч.
В строке fig, ax=plt.subplots() создали область Figure (экземпляр класса figure) и добавили к Figure область Axes. По умолчанию разметка осей Х и Y – от 0 до 1. Полученное графическое окно содержит меню , назначение кнопок которого приведено в табл. 1.1. Таблица 1.1 Интерактивная навигация графического окна Сохранить получившееся изображение можно с помощью функ ции pyplot.savefig(). Графическое окно, полученное при выполнении тех же команд в блокноте Google Colab, несколько отличается (рис. 1.3). Рис. 1.3. Вид графического окна в Google Colab
Меню отсутствует. Отсутствует и внешняя граница графического окна. Копировать и сохранять содержимое графического окна в этом случае можно, кликнув правой кнопкой мыши на окне и выполнив соответствующий пункт появившегося меню. С помощью методов plt.cla() (Axes) и plt.clf() (Figure) можно очи стить график и рисунок соответственно. В том, что Figure и Axes – это разные области, можно легко убе диться, если изменить их цвет: import matplotlib.pyplot as plt fig, ax=plt.subplots() fig.set(facecolor = 'aquamarine') # закрашиваем объект Figure ax.set(facecolor = 'paleturquoise') # закрашиваем объект Axes plt.show() Рис. 1.4. Области Figure и Axes Часто бывает удобно отобразить несколько независимых графи ков в одном окне. Для этого предназначена функция subplot() библиотеки matplotlib.pyplot. Синтаксис функции: subplot(mnp) или subplot(m,n,p). Параметрами функции являются количество подокон по горизон тали (m), количество подокон по вертикали (n) и номер подокна, в которое будет выводиться текущий график (p). Нумерация идет слева направо по строкам. Вот так можно разбить графическое окно на 6 подокон, а затем построить в каждом (или в некоторых) подокне (подокнах) свой график: import matplotlib.pyplot as plt fig, ax=plt.subplots(2,3); plt.show()