Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Визуализация данных в Python. Работа с библиотекой Matplotlib

Покупка
Артикул: 809810.01.99
Доступ онлайн
500 ₽
В корзину
Рассмотрены возможности языка программирования Python в области визуализации данных. Для построения графиков использована библиотека Matplotlib. Приведены примеры построения двумерных и трехмерных графиков, гистограмм и диаграмм, а также рассмотрены вопросы форматирования построенных графиков и добавления на них графических примитивов. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подготовки 09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», «Вычислительная математика», «Прикладная математика», «Компьютерная графика». Подготовлено на кафедре информатики и прикладной математики.
Титов, А. Н. Визуализация данных в Python. Работа с библиотекой Matplotlib : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева ; Минобрна-уки России, Казан. нац. исслед. технол. ун-т. - Казань : Изд-во КНИТУ, 2022. - 92 с. - ISBN 978-5-7882-3176-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/2069267 (дата обращения: 29.03.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации

Казанский национальный исследовательский

технологический университет

А. Н. Титов, Р. Ф. Тазиева

ВИЗУАЛИЗАЦИЯ 

ДАННЫХ В 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()
Рис. 1.5. Шесть подокон в одном графическом окне

Теперь «ax» – это не одиночный объект Axes, а их двумерный 

массив NumPy:

type(ax)
numpy.ndarray
print(ax)

[[<matplotlib.axes._subplots.AxesSubplot object at 0x7fd5f80b5210>
<matplotlib.axes._subplots.AxesSubplot object at 0x7fd5f7f47e10>
<matplotlib.axes._subplots.AxesSubplot object at 0x7fd5f8659c90>]
[<matplotlib.axes._subplots.AxesSubplot object at 0x7fd5f85a56d0>
<matplotlib.axes._subplots.AxesSubplot object at 0x7fd5f8602990>
<matplotlib.axes._subplots.AxesSubplot object at 0x7fd5f8142650>]]

11 
Доступ онлайн
500 ₽
В корзину