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

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

Покупка
Новинка
Артикул: 853615.01.99
Доступ онлайн
500 ₽
В корзину
Рассмотрены возможности языка программирования Python в области визуализации данных. Для построения графиков использована интерактивная библиотека Altair. Приведены примеры построения диаграмм различных типов, в том числе интерактивных, а также рассмотрены вопросы форматирования построенных графиков. Для оценки уровня усвоения студентами пройденного материала предложены варианты заданий для самостоятельной работы. Предназначено для бакалавров, обучающихся по направлениям подготовки: 09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», «Вычислительная математика», «Программирование», «Компьютерная графика». Подготовлено на кафедре информатики и прикладной математики.
Титов, А. Н. Визуализация данных в Python. Основы работы с интерактивной библиотекой Altair : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева ; Минобрнауки России, Казан. нац. исслед. технол. ун-т. - Казань : Изд-во КНИТУ, 2024. - 128 с. - ISBN 978-5-7882-3478-6. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2198884 (дата обращения: 04.03.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации 
Казанский национальный исследовательский 
технологический университет 
А. Н. Титов, Р. Ф. Тазиева 
ВИ З УА ЛИЗ АЦ И Я ДА ННЫ Х  В  P Y TH ON
О СНО ВЫ  РА БО ТЫ  C  И НТЕРАКТИ ВНО Й
БИ БЛИ ОТЕКО Й A LTA I R   
Учебно-методическое пособие
Казань 
Издательство КНИТУ 
2024 


УДК 004.42(075) 
ББК  32.92я7 
Т45 
Печатается по решению редакционно-издательского совета  
Казанского национального исследовательского технологического университета 
Рецензенты: 
д-р пед. наук, проф. Ю. В. Торкунова 
канд. экон. наук, доц. О. С. Семичева 
Т45 
Титов А. Н. 
Визуализация данных в Python. Основы работы с интерактивной библиотекой Altair : учебно-методическое пособие / А. Н. Титов, Р. Ф. Тазиева; Минобрнауки России, Казан. нац. исслед. технол. ун-т. – Казань : Изд-во КНИТУ, 2024. – 128 с. 
ISBN 978-5-7882-3478-6 
Рассмотрены возможности языка программирования Python в области визуализации данных. Для построения графиков использована интерактивная библиотека Altair. Приведены примеры построения диаграмм различных типов, в том 
числе интерактивных, а также рассмотрены вопросы форматирования построенных графиков. Для оценки уровня усвоения студентами пройденного материала 
предложены варианты заданий для самостоятельной работы. 
Предназначено для бакалавров, обучающихся по направлениям подготовки: 
09.03.02 «Информационные системы и технологии», 18.03.01 «Химическая технология», 28.03.02 «Наноинженерия», 29.03.04 «Технология художественной обработки материалов», 29.03.05 «Конструирование изделий легкой промышленности», изучающих дисциплины «Информатика», «Информационные технологии», 
«Вычислительная математика», «Программирование», «Компьютерная графика». 
Подготовлено на кафедре информатики и прикладной математики. 
УДК 004.42(075) 
ББК  32.92я7 
ISBN 978-5-7882-3478-6 
© Титов А. Н., Тазиева Р. Ф., 2024 
© Казанский национальный исследовательский 
технологический университет, 2024 
2


О Г Л А В Л Е Н И Е
Введение ..............................................................................................................................4 
1. ALTAIR. НАЧАЛО РАБОТЫ .......................................................................................7 
1.1. Установка библиотеки 
............................................................................................7 
1.2. Этапы построения графика ....................................................................................9 
1.3. Наборы данных .................................................................................................... 10 
2. МЕТОДЫ ВИЗУАЛИЗАЦИИ ДАННЫХ ................................................................. 19 
2.1. Диаграммы рассеяния. Методы mark_point(), mark_circle и mark_square ..... 20 
2.3. Линейные диаграммы. Методы mark_line() и mark_trail ................................. 30 
2.4. Метод mark_rule() ................................................................................................ 37 
2.5. Построение диаграмм с областями. Метод mark_area() .................................. 39 
2.6. Построение гистограмм. Метод mark_bar() ...................................................... 43 
2.7. Метод mark_boxplot() .......................................................................................... 49 
2.8. Полосы ошибок. Диаграммы errorband и errorbar ............................................ 55 
2.9. Круговые диаграммы. Метод mark()_arc() ........................................................ 59 
2.10. Тепловая карта. Метод mark()_rect() 
................................................................ 66 
2.11. Нанесение на график текста и изображений. Методы mark_text() 
и mark_image() 
............................................................................................................. 68 
3. ПРЕОБРАЗОВАНИЯ В ALTAIR ............................................................................... 82 
4. ИНТЕРАКТИВНОСТЬ И ГРАММАТИКА ВЫБОРА В ALTAIR ....................... 103 
4.1. Панорамирование, масштабирование и всплывающие подсказки ............... 103 
4.2. Выбор, условия, связывание ............................................................................. 105 
4.3. Создание меню и слайдеров ............................................................................. 116 
Задания для самостоятельной работы ......................................................................... 121 
Литература 
...................................................................................................................... 125 
3 


В В Е Д Е Н И Е
Визуализация 
данных 
является 
фундаментальной 
частью 
Data Science. Визуализация позволяет быстрее и легче замечать и интерпретировать связи и взаимоотношения, а также выявлять развивающиеся тенденции, которые не привлекли бы внимания в виде необработанных данных. Продуманное графическое представление в отличие от 
таблиц и документов не только содержит информацию, но и повышает 
эффективность ее восприятия за счет наглядности, привлечения внимания и удержания интереса.  
Для визуализации данных в Python предназначено множество 
библиотек, среди которых можно выделить Matplotlib, Seaborn, Plotly, 
Bokeh, Folium и Altair.  
Визуализация в некоторых библиотеках, таких как Matplotlib, является простым статичным изображением, что хорошо подходит для 
объяснения концепций в документах, на слайдах или в презентации. 
Другие библиотеки, к примеру Altair, Bokeh и Plotly, позволяют создавать интерактивные графики, которые пользователи могут изучать, взаимодействуя с ними.  
Одной из самых популярных и базовых библиотек Python для визуализации данных является Matplotlib. Библиотека позволяет создавать практически любую визуализацию, однако имеет чрезвычайно 
низкоуровневый интерфейс и требует гораздо больше кода, чем другие 
библиотеки. Matplotlib – это библиотека для визуализации, а не для анализа данных. Для анализа данных ее нужно совмещать с другими библиотеками, например с Pandas. 
Seaborn – это библиотека, построенная на базе Matplotlib. Она 
предоставляет интерфейс более высокого уровня по сравнению 
с Matplotlib для построения графиков, что упрощает ее использование. 
Seaborn строит графики, аналогичные Matplotlib, но с меньшим количеством кода и более красивым дизайном, однако не имеет такой широкой 
коллекции графиков, как Matplotlib.  
С помощью библиотеки Plotly можно достаточно легко создавать 
интерактивные графики типографского качества. Интерактивные графики не только красиво выглядят, но и предоставляют возможность более внимательно изучить каждую точку на графике. С помощью Plotly 
достаточно легко создавать сложные графики. 
4 


Bokeh – это интерактивная библиотека для визуализации, предназначенная для презентации данных в браузерах. Иногда ее называют 
интерактивной версией Matplotlib. Bokeh можно использовать как с высокоуровневым, так и с низкоуровневым интерфейсом. С ее помощью 
можно создавать множество сложных графиков, которые создает 
Matplotlib, с меньшим количеством строк кода и более высоким разрешением. В Bokeh можно достаточно просто связывать графики. Изменение, примененное к одному графику, будет применено к другому графику с этой же переменной. Поскольку Bokeh – это библиотека, которая 
имеет интерфейс среднего уровня, она часто требует для создания того 
же графика меньше кода, чем Matplotlib, но больше, чем Seaborn, Altair 
или Plotly. 
Библиотека Folium позволяет легко визуализировать данные на 
интерактивной встраиваемой карте. В библиотеке есть несколько 
встроенных тайлсетов из OpenStreetMap, Mapbox и Stamen. Folium позволяет создавать интерактивную карту в несколько строк кода.  
В данном пособии авторы рассмотрели базовые возможности 
Altair – библиотеки декларативной статистической визуализации для 
Python. 
Библиотека 
разработана 
Брайаном 
Грейнджером 
(Brian Granger) и Джейком Вандерпласом (Jake Vanderplas). Одна из 
концепций дизайна Altair заключается в том, что он использует спецификацию Vega-Lite для создания красивых и эффективных визуализаций с минимальным количеством кода. Vega-Lite – это грамматика высокого уровня интерактивной графики. Она предоставляет синтаксис 
JSON для создания набора визуализаций, предназначенных для представления и анализа данных. Источником данных библиотеки является 
датафрейм, который состоит из столбцов с разными типами данных – 
количественными, порядковыми, номинальные, временны
́ ми. Датафрейм представляет собой таблицу, в которой строки соответствуют 
значениям элементов выборок, а столбцы – наблюдаемым переменным. 
Данные сопоставляются с визуальными свойствами (положение, цвет, 
размер, форма и т. д.). Компилятор Vega-Lite автоматически создает 
компоненты визуализации, включая оси, легенды и масштабы. Он определяет свойства этих компонентов по умолчанию на основе набора разработанных правил. В то же время пользователю предоставляется возможность переопределения значений по умолчанию и настройки различных частей визуализации. Поскольку Vega-Lite разработана и для 
5 


анализа данных, поддерживаются как преобразования данных (агрегирование, биннинг – разделение данных на несколько интервалов), так 
и визуальные преобразования (например, построение стековых диаграмм и фасетирование – разбиение графика на несколько подграфиков 
с общими основными параметрами). Altair упрощает преобразование 
данных при создании диаграммы: вместо того чтобы выполнять преобразование заранее, как в Plotly, в Altair есть возможность выполнить 
преобразование в коде, описывающем диаграмму. Altair также позволяет создавать связи между графиками: можно, например, использовать 
выбор данных на одной из связанных диаграмм для фильтрации содержимого прикрепленной другой диаграммы. Altair подходит для создания сложных графиков для отображения статистики, однако не может 
обрабатывать данные, превышающие 5000 экземпляров, и некоторые 
простые диаграммы в нем уступают по стилю Plotly или Seaborn.  
В данном пособии авторы поставили перед собой цель собрать 
имеющуюся в литературе информацию по работе с Altair, переработать 
ее с учетом тех типов задач, которые решаются в преподаваемых ими 
дисциплинах – информатике, информационных технологиях, программировании и обработке данных. Авторы старались облегчить восприятие изложенного материала, снабдив пособие большим количеством 
примеров и пояснений к ним. 
Пособие включает в себя четыре главы. В первой главе рассмотрены этапы построения графиков и приведен список имеющихся в библиотеке наборов данных. Вторая глава посвящена методам визуализации данных и способам форматирования диаграмм. В третьей главе рассмотрены виды преобразований данных, предоставляемых Altair. В четвертой главе рассмотрены возможности библиотеки в создании интерактивных графиков. 
Материал, изложенный в пособии, может быть использован при 
проведении лабораторных занятий по информатике, информационным 
технологиям, обработке экспериментальных данных, вычислительной 
и прикладной математике. Используемая в пособии версия библиотеки 
Altair – 5.0.1. 
Вся работа по построению приведенных в пособии графиков 
была проведена в Google Colab и Jupyter notebook. 
6 


.  A L T A I R .  Н А Ч А Л О  Р А Б О Т Ы  
Для работы с библиотекой она должна быть установлена на компьютере. Затем ее нужно импортировать вместе с необходимыми модулями, подготовить исходные данные, передать их объекту верхнего 
уровня Chart, выбрать тип диаграммы (в Altair они называются метками), осуществить кодирование и при необходимости задать нужные 
свойства графического объекта.  
Для выполнения кода можно использовать любую интегрированную среду разработки с поддержкой ноутбуков, так как для визуализаций требуется внешний интерфейс Javascript для отображения диаграмм. Этой средой могут быть Jupyter Notebook, Google Colab, 
JupyterLab, Zeppelin и т. д.  
1 . 1 .  У с т а н о в к а  б и б л и о т е к и  
Для работы с библиотекой ее нужно установить на компьютере. 
Некоторые среды разработки Python, такие как Google Colab, уже включают в себя различные библиотеки, в том числе и Altair. Их устанавливать не надо, а следует только импортировать. Проверить, установлена 
ли данная библиотека (модуль), можно, набрав в командной строке 
pip freeze или pip list.  Получится список, аналогичный приведенному 
на рис. 1.1.  
 
Рис. 1.1. Фрагмент списка установленных библиотек Python 
7 
 


Если в этом списке нет нужной библиотеки, ее нужно установить. 
Делается это стандартными средствами Python: pip install altair. Узнать 
установленную версию одной конкретной библиотеки можно с помощью команды pip show имя_библиотеки. 
Выполнив команду pip show altair, получим информацию, аналогичную той, что приведена на рис. 1.2. 
 
Рис. 1.2. Информация о версии библиотеки Altair 
Как и любая библиотека, библиотека Altair периодически обновляется. Проверить наличие новых версий для каждого установленного 
пакета (библиотеки) можно с помощью команды pip list-o, которая выведет на экран только те пакеты, для которых вышли обновления. Выполнив команду, получим список, аналогичный приведенному на 
рис. 1.3: 
 
Рис. 1.3. Фрагмент списка пакетов, для которых имеется обновление 
Поскольку для Altair имеется обновление, имеет смысл его установить, выполнив команду pip install altair-U. После того как библиотека установлена, для работы с ней ее нужно импортировать. Обычно 
это делается так: import altair as alt. 
  
8 
 


. 2 .  Э т а п ы  п о с т р о е н и я  г р а ф и к а   
Для построения графика нужно задать исходные данные, описать 
тип необходимой визуализации, указать, какие атрибуты отображать на 
графике, и задать свойства графика. Основным объектом для создания 
графиков является объект класса Chart, в который необходимо передать 
данные. Тип визуализации задается с помощью метода mark_название_типа. Свойство mark позволяет указать, как данные должны быть 
представлены на графике. Список основных типов представлен 
в табл. 1.1. 
Таблица 1.1 
Основные типы меток 
 
Тип диаграммы можно изменить, просто изменив тип метки. 
Функция encode() указывает Altair, что нужно построить в заданном фрейме данных, а с помощью функции properties() задаются определённые свойства графика. Это могут быть ширина или высота графика, вид маркера и т. д. 
9 
 


. 3 .  Н а б о р ы  д а н н ы х  
Каждый объект диаграммы верхнего уровня (т. е. Chart, 
LayerChart, VConcatChart, HConcatChart, RepeatChart, FacetChart) принимает набор данных в качестве первого аргумента. Ожидается, что 
данные в Altair будут формате, в котором каждая строка – это наблюдение, а каждый столбец – переменная. Набор данных может быть указан 
одним из следующих способов: 
– как Pandas DataFrame; 
– как Data или связанный объект (т. е. UrlData, InlineData, 
NamedData); 
– как строка URL, указывающая на файл CSV или JSON;  
– как 
объект, 
поддерживающий__geo_interface__(например, 
Geopandas GeoDataFrame, Shapely Geometries, GeoJSON Objects ). 
Рассмотрим способы создания и передачи данных. Например, 
можно создать датафрейм и передать его в Chart в качестве аргумента: 
import altair as alt 
import pandas as pd 
data = pd.DataFrame({'ФИО': ['Петров', 'Иванов', 'Галеев', 'Мутко'], 
                     'Оценка по химии': [5, 3, 4, 5]}) 
alt.Chart(data).mark_bar().encode( 
    x='ФИО', 
    y='Оценка по химии' 
) 
Chart – это объект, который создает JSON-словарь, представляющий данные и кодировки визуализации, которые могут быть отправлены в блокнот и обработаны JavaScript-модулем Vega-Lite. Чтобы просмотреть, как выглядит это JSON-представление, используем первую 
строку данных созданного датафрейма: 
d = data.iloc[:1]; alt.Chart(d).mark_bar().to_dict() 
Выполнив код, получим словарь: 
{'config': {'view': {'continuousWidth': 300, 'continuousHeight': 
300}}, 'data': {'name': 'data-6d0aae1b1496f92eea7e139a6261a21e'}, 
 'mark': {'type': 'bar'}, 
 '$schema': 'https://vega.github.io/schema/vega-lite/v5.8.0.json', 
 'datasets': {'data-6d0aae1b1496f92eea7e139a6261a21e': [{'ФИО': 
'Петров', 
    'Оценка по химии': 5}]}} 
10 
 


Похожие

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