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

Интерактивные дашборды и приложения с Plotly и Dash. Используем полноценный веб-фреймворк в Python на всю мощь - без JavaScript

Покупка
Артикул: 817287.01.99
Прочитав эту книгу, вы в полной мере освоите фреймворк Dash от Plotly, предоставляющий разработчикам Python блестящие возможности по созданию полноценных интерактивных веб-приложений и дашбордов без знания языка JavaScript. Вы научитесь создавать различные типы диаграмм; вставлять в приложение разнообразные элементы управления, включая кнопки, выпадающие списки, флажки, календари и т.д., и снабжать приложения динамическими страницами со ссылками. По прочтении книги вы будете обладать необходимыми навыками развертывания полноценных интерактивных приложений и дашбордов, выполнения многоступенчатого рефакторинга кода и оптимизации написанных вами приложений. Издание адресовано специалистам по работе с данными и аналитикам, желающим больше узнать о своих исходных данных при помощи интерактивных дашбордов.
Даббас, Э. Интерактивные дашборды и приложения с Plotly и Dash. Используем полноценный веб-фреймворк в Python на всю мощь - без JavaScript : практическое руководство / Э. Даббас ; пер. с англ. А. Ю. Гинько. - Москва : ДМК Пресс, 2023. - 306 с. - ISBN 978-5-97060-988-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/2109589 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Элиас Даббас

Интерактивные дашборды 
и приложения с Plotly и Dash

Interactive Dashboards and 
Data Apps with Plotly and Dash

Harness the power of a fully fledged frontend web 
framework in Python – no JavaScript required

Elias Dabbas

BIRMINGHAM – MUMBAI

Москва, 2023

Элиас Даббас

Интерактивные дашборды 
и приложения с Plotly и Dash

Используем полноценный веб-фреймворк 
в Python на всю мощь – без JavaScript

УДК   004.4
ББК   32.372
Д12

Д12   Элиас Даббас

Интерактивные дашборды и приложения с Plotly и Dash. Используем 
полноценный веб-фреймворк в Python на всю мощь – без JavaScript  / 
пер. с англ. А. Ю. Гинько. – М.: ДМК Пресс, 2023. – 306 с.: ил.

         ISBN 978-5-97060-988-0

Прочитав эту книгу, вы в полной мере освоите фреймворк Dash от 
Plotly, предоставляющий разработчикам Python блестящие возможности по созданию полноценных интерактивных веб-приложений и дашбордов без знания языка JavaScript.
Вы научитесь создавать различные типы диаграмм; вставлять в приложение разнообразные элементы управления, включая кнопки, выпадающие списки, флажки, календари и т. д. и снабжать приложения динамическими страницами со ссылками. По прочтении книги вы будете 
обладать необходимыми навыками развертывания полноценных интерактивных приложений и дашбордов, выполнения многоступенчатого 
рефакторинга кода и оптимизации написанных вами приложений.
Издание адресовано специалистам по работе с данными и аналитикам, желающим больше узнать о своих исходных данных при помощи 
интерактивных дашбордов.

Copyright © Packt Publishing 2021. First published in the English language under the title 
Interactive Dashboards and Data Apps with Plotly and Dash – (9781800568914).

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать 
абсолютную точность и правильность приводимых сведений. В связи с этим издательство 
не несет ответственности за возможные ошибки, связанные с использованием книги.

ISBN 978-1-80056-891-4 (англ.) 
 Copyright © Packt Publishing, 2021
ISBN 978-5-97060-988-0 (рус.)   
 © Оформление, перевод на русский язык, 

   издание, ДМК Пресс, 2022

Оглавление

Предисловие от издательства ..................................................................... 10
Об авторе ....................................................................................................... 11
О рецензенте................................................................................................. 12
Введение ....................................................................................................... 13

Часть I. Построение приложения на Dash ................................................. 17
Глава 1. Знакомство с экосистемой Dash ................................................... 18

Технические требования ..................................................................................18

Настройка окружения ............................................................................................19

Исследование фреймворка Dash и сопутствующих пакетов .........................20

Пакеты, содержащиеся во фреймворке Dash .......................................................21

Введение в базовую структуру приложения Dash ..........................................22
Создание и запуск простого приложения Dash ..............................................23
Добавление HTML и других компонентов в приложение ..............................25

Добавление компонентов HTML в приложение Dash ..........................................26

Проектирование макета и управление темами .............................................28

Темы ........................................................................................................................29
Координатная сетка и чувствительность к изменениям .....................................30
Встроенные компоненты .......................................................................................32
Кодировка цветов ...................................................................................................32
Добавление компонентов Dash Bootstrap в приложение ....................................33

Заключение .......................................................................................................35

Глава 2. Структура приложений Dash ......................................................... 36

Технические требования ..................................................................................36
Использование Jupyter Notebook для запуска приложений Dash..................37

Изоляция функционала для упрощения процесса разработки и отладки .........37

Создание чистой функции на Python ..............................................................39

Знакомство с параметром ID компонентов Dash ................................................40

Использование элементов ввода и вывода .....................................................41

Определение ввода и вывода ................................................................................42
Шаблон функции обратного вызова .....................................................................43
Реализация функции обратного вызова ...............................................................44
Внедрение функции в приложение ......................................................................45
Свойства функций обратного вызова ...................................................................53

Заключение .......................................................................................................55

Глава 3. Работа с объектом Figure ............................................................... 56

Технические требования ..................................................................................56
Введение в объект Figure ..................................................................................57
Знакомство с атрибутом data ...........................................................................59
Знакомство с атрибутом layout........................................................................61

Интерактивное исследование объекта Figure ......................................................62

 Оглавление

Опции настройки для объекта Figure ...................................................................63

Способы преобразования графиков ................................................................64

Преобразование графиков в HTML .......................................................................64
Работа с настоящим набором данных ..................................................................65
Преобразование данных как важная часть процесса визуализации ..................68
Придание графику интерактивности за счет обратного вызова ........................69
Добавление функционала в приложение .............................................................72
Создание тем для графиков ...................................................................................74

Заключение .......................................................................................................75

Глава 4. Подготовка и преобразование данных. Введение  
в Plotly Express .............................................................................................. 76

Технические требования ..................................................................................76
Длинный формат данных (tidy) .......................................................................77

Примеры графиков Plotly Express .........................................................................77
Основные атрибуты длинного формата данных (tidy) ........................................80

Роль навыков в области преобразования данных ..........................................81

Исследование исходных файлов ...........................................................................82
Отмена свертывания датафреймов ......................................................................91
Сведение датафреймов ..........................................................................................93
Объединение датафреймов ...................................................................................95

Знакомство с Plotly Express ..............................................................................97

Plotly Express и объекты Figure ............................................................................102
Создание диаграммы Plotly Express на основе набора данных ........................104
Добавление данных и столбцов в набор .............................................................106

Заключение .....................................................................................................107

Часть II. Расширение функционала приложений ....................................109
Глава 5. Интерактивное сравнение данных при помощи  
столбчатых диаграмм и выпадающих списков .......................................110

Технические требования ................................................................................111
Построение вертикальных и горизонтальных столбчатых диаграмм........111

Создание вертикальных столбчатых диаграмм со множеством значений......118

Связывание столбчатых диаграмм с выпадающими списками ..................119
Разные способы отображения столбчатых диаграмм с несколькими  
рядами данных .........................................................................................123
Создание датафрейма с данными о доходах ......................................................124
Внедрение изменений в приложение .................................................................128

Использование ячеистой структуры для вывода множественных  
диаграмм (фасетирование) ......................................................................130

Исследование дополнительных возможностей выпадающих списков 
(множественный выбор, заместители текста и т. д.) ..............................133
Добавление заместителя текста для выпадающего списка ..............................133
Изменение темы приложения .............................................................................134
Изменение размеров компонентов ....................................................................136

Заключение .....................................................................................................137

Оглавление  7

Глава 6. Исследование переменных при помощи точечной  
диаграммы и фильтрация наборов данных ............................................. 139

Технические требования ................................................................................140
Различные способы использования точечных диаграмм: маркеры,  
линии и текст ............................................................................................140
Маркеры, линии и текст .......................................................................................141

Отображение нескольких рядов данных на одной точечной диаграмме .... 144
Настройка цветов на точечной диаграмме ...................................................147

Дискретные и непрерывные переменные .........................................................147
Использование цветов с непрерывными переменными ..................................148
Создание цветовых шкал вручную .....................................................................151
Использование цветов с дискретными переменными .....................................153

Управление наложениями и выбросами при помощи прозрачности, 
символов и масштаба ...............................................................................156
Прозрачность и размер маркеров .......................................................................157
Использование логарифмических шкал .............................................................158

Знакомство со слайдерами, включая слайдеры диапазонов .......................160
Настройка подписей и значений слайдеров.................................................163
Заключение .....................................................................................................168

Глава 7. Работа с географическими картами и обогащение  
дашбордов при помощи языка разметки Markdown .............................. 169

Технические требования ................................................................................170
Знакомство с картограммами ........................................................................170
Использование анимации для добавления нового слоя в визуализацию .... 172
Использование функций обратного вызова с картами ...............................174
Создание компонента Markdown...................................................................177
Знакомство с проекциями карты ..................................................................182
Использование точечных карт.......................................................................183
Использование карт Mapbox ..........................................................................185
Другие опции и инструменты для работы с картами ..................................190
Внедрение интерактивной карты в приложение .........................................191
Заключение .....................................................................................................192

Глава 8. Определение частотности данных с помощью гистограмм 
и построение интерактивных таблиц .......................................................193

Технические требования ................................................................................194
Создание гистограммы ..................................................................................194

Настройка гистограммы, включая изменение количества столбиков 
и отображение множественных данных ...................................................195

Использование цвета для детализации гистограммы.......................................197
Отображение множественных гистограмм ........................................................198

Добавление гистограммам интерактивности ..............................................201
Создание двумерной гистограммы ...............................................................205
Создание DataTable .........................................................................................207
Настройка отображения таблицы данных (ширина и высота ячеек, 
отображение текста и т. д.) .......................................................................208

 Оглавление

Добавление гистограмм и таблиц данных в приложение ...........................210
Заключение .....................................................................................................212

Что мы узнали из первых двух частей книги ...........................................214

Часть III. Развитие приложений. Новый уровень ....................................215
Глава 9. Машинное обучение: пусть данные говорят сами за себя ........216

Технические требования ................................................................................217
Кластеризация данных ...................................................................................217
Поиск оптимального количества кластеров .................................................221
Кластеризация стран по численности населения ........................................224
Подготовка данных с использованием библиотеки scikit-learn..................226

Заполнение пропущенных значений .................................................................227
Масштабирование данных при помощи scikit-learn .........................................228

Создание интерактивного приложения с применением кластеризации  
по методу k-средних ................................................................................229

Заключение .....................................................................................................234

Глава 10. Ускорение работы приложений с помощью улучшений 
функций обратного вызова .......................................................................235

Технические требования ................................................................................236
Знакомство с элементом State .......................................................................236

Различия между элементами Input и State ........................................................237

Создание взаимосвязанных компонентов ...................................................241
Добавление пользователем динамических компонентов в приложение .... 246
Введение в шаблонные обратные вызовы ....................................................248
Заключение .....................................................................................................253

Глава 11. Ссылки и многостраничные приложения ................................255

Технические требования ................................................................................256
Знакомство с компонентами Location и Link ...............................................256

Работа с компонентом Link .................................................................................257

Разбор ссылок и использование их составляющих для изменения 
приложения ..............................................................................................259

Адаптирование приложения под множественные макеты .........................260

Отображение содержимого на основе ссылки ...................................................263

Добавление динамически сгенерированных ссылок в приложение ..........264
Внедрение в приложение интерактивности на основе ссылок ...................265
Заключение .....................................................................................................268

Глава 12. Развертывание приложения ......................................................269

Технические требования ................................................................................270
Основы рабочего процесса разработки, развертывания и обновления 
приложений ..............................................................................................270

Аренда виртуального сервера и настройка аккаунта ..................................272
Подключение к серверу при помощи Secure Shell (SSH) .............................274
Запуск приложения на сервере ......................................................................276

Оглавление  9

Настройка и запуск приложения через WSGI-сервер ..................................279
Настройка и конфигурирование веб-сервера ..............................................280
Поддержка приложения и его обновление ...................................................282

Исправление ошибок и внесение изменений в приложение ...........................282
Обновление пакетов Python ................................................................................283
Поддержка сервера ...............................................................................................284

Развертывание и масштабирование приложений Dash  
с помощью Dash Enterprise ......................................................................285
Инициализация приложения ..............................................................................285
Создание приложения (необязательная фаза) ...................................................286
Подготовка папки проекта ..................................................................................286
Развертывание приложения в Dash Enterprise ...................................................287

Заключение .....................................................................................................288

Глава 13. Следующие шаги .........................................................................290

Технические требования ................................................................................290
Развитие навыков в области анализа и подготовки данных .......................291
Исследование новых техник визуализации ..................................................292
Знакомство с другими компонентами Dash .................................................293
Создание собственных компонентов Dash ...................................................293
Реализация и визуализация моделей машинного обучения ......................294
Повышение эффективности и использование инструментов  
для работы с большими данными ...........................................................294

Масштабирование с Dash Enterprise .............................................................298

Dash Design Kit ......................................................................................................299
App Manager ..........................................................................................................299
Snapshot Engine ....................................................................................................299
Повышение производительности с помощью Job Queue ..................................300
Корпоративная безопасность ..............................................................................300
Консультационная служба ...................................................................................300

Заключение .....................................................................................................300

Предметный указатель ...............................................................................302

Предисловие от издательства

Отзывы и пожелания
Мы всегда рады отзывам наших читателей. Расскажите нам, что вы думаете 
об этой книге – что понравилось или, может быть, не понравилось. Отзывы 
важны для нас, чтобы выпускать книги, которые будут для вас максимально 
полезны.
Вы можете написать отзыв на нашем сайте www.dmkpress.com, зайдя на страницу книги и оставив комментарий в разделе «Отзывы и рецензии». Также можно послать письмо главному редактору по адресу dmkpress@gmail.com; 
при этом укажите название книги в теме письма. 
Если вы являетесь экспертом в какой-либо области и заинтересованы в написании новой книги, заполните форму на нашем сайте по адресу http://dmkpress.
com/authors/publish_book/ или напишите в издательство по адресу dmkpress@gmail.
com.

Список опечаток
Хотя мы приняли все возможные меры для того, чтобы обеспечить высокое 
качество наших текстов, ошибки все равно случаются. Если вы найдете ошибку 
в одной из наших книг – возможно, ошибку в основном тексте или программном коде, – мы будем очень благодарны, если вы сообщите нам о ней. Сделав 
это, вы избавите других читателей от недопонимания и поможете нам улучшить последующие издания этой книги. 
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них 
главному редактору по адресу dmkpress@gmail.com, и мы исправим это в следующих тиражах.

Нарушение авторских прав
Пиратство в интернете по-прежнему остается насущной проблемой. Издательства ДМК Пресс и Packt Publishing очень серьезно относятся к вопро сам 
защиты авторских прав и лицензирования. Если вы столкнетесь в интернете 
с незаконной публикацией какой-либо из наших книг, пожалуйста, пришлите 
нам ссылку на интернет-ресурс, чтобы мы могли применить санкции.
Ссылку на подозрительные материалы можно прислать по адресу электронной почты dmkpress@gmail.com.
Мы высоко ценим любую помощь по защите наших авторов, благодаря которой мы можем предоставлять вам качественные материалы.