Python: Визуализация данных
Теория: Интерактивные графики с Plotly
Plotly - это библиотека визуализации данных, которая позволяет создавать разнообразные графики, диаграммы и карты. Ее особенность заключается в том, что графики, созданные с использованием Plotly, могут быть интерактивными, что делает их более динамичными и привлекательными для пользователей.
Отличительные особенности Plotly от других библиотек визуализации:
- Интерактивность. Plotly позволяет создавать графики с широким спектром интерактивных функций, таких как масштабирование, перемещение, выделение и анимации. Это особенно полезно для представления данных в динамике и взаимодействия с ними.
- Поддержка веб-приложений. Plotly легко интегрируется в веб-приложения и дашборды. Графики могут быть встроены непосредственно в HTML-страницы, что делает их удобными для веб-разработчиков.
- Широкие возможности настройки. Plotly обеспечивает обширные возможности настройки внешнего вида графиков, начиная от цветов и линий, заканчивая макетом и осевыми метками.
- Совместимость с другими библиотеками: Plotly легко интегрируется с другими популярными библиотеками Python, такими как Pandas, NumPy, и др.
В этом уроке мы изучим основы создания графиков с использованием Plotly Express и Plotly Graph Objects. Мы научимся настраивать внешний вид графиков, добавлять интерактивные элементы управления, и сохранять результаты в различных форматах.
Построение графиков с использованием plotly.express
Начнем с построения графиков без сложной настройки. Для этого будем использовать модуль plotly.express. Также в дальнейшем будем использовать библиотеку pandas для создания данных, которые требуется визуализировать.
Теперь инициализируем небольшую таблицу с 4 столбцами и 4 строками данных и нарисуем линейный график на основе этих данных.

Вы можете запустить код в интерактивной ячейке Google Colab ниже
Код выше создает линейный график отображает годовые изменения 'Продаж', 'Выручки' и 'Прибыли'. Далее построим пример использования еще одного популярного графика - "ящика с усами".

Этот код создает box plot для сравнения значений между двумя категориями. Вы можете настроить цвета, отображение выбросов (outliers), добавить подписи и другие параметры на ваше усмотрение. Все графики, построенные с помощью plotly являются интерактивными. Давайте познакомимся с доступными функциональными кнопками, расположенными в правом верхнем углу и появляющимися при наведении курсора мыши на график.
Возможности для интерактивной работы с графиками
Plotly Express предоставляет множество встроенных возможностей для интерактивной работы с графиками. В зависимости от версии plotly набор кнопок может изменяться, но в целом всегда выглядит следующим образом:

Ниже приведен обзор некоторых стандартных кнопок и функций, которые могут быть доступны на интерактивных графиках, созданных с использованием Plotly Express:
- Zoom In/Out (Увеличение/Уменьшение). Вы можете увеличивать или уменьшать область графика, чтобы более детально рассмотреть данные. Для этого используются кнопки управления масштабом.
- Pan (Перемещение). Кнопка "Pan" позволяет перемещаться по графику для просмотра различных областей. Это особенно полезно на крупных графиках.
- Reset (Сброс). Кнопка "Reset" возвращает график к исходному масштабу и положению.
- Hover (Наведение). При наведении курсора на элемент графика, могут появляться всплывающие подсказки с дополнительной информацией.
- Выбор данных (Selection). Возможность выделения определенных данных на графике. Например, на точечных графиках scatter plot можно выделять точки мышью.
- Сохранение (Save). Обычно, есть опция сохранения графика в различных форматах (например, PNG, SVG) для дальнейшего использования в презентациях или документах.
- Легенда (Legend). Легенда на графике может быть интерактивной, позволяя скрывать или отображать определенные элементы данных при клике на соответствующую метку в легенде.
- 3D Rotate (Вращение в 3D). Для 3D графиков может быть предусмотрена возможность вращения графика для просмотра с разных углов.
Важно отметить, что доступные кнопки и функции могут варьироваться в зависимости от типа графика и конкретных параметров, установленных в вашем коде. При создании графика с Plotly Express, вы можете настраивать интерактивные возможности, добавляя соответствующие аргументы к функции update_layout`` и другим методам настройки. Далее мы посмотрим на примерах модульplotly.graph_object`, который расширяет перечень доступных настроек графиков.
Настройка отображения графиков с использованием plotly.graph_object
Модуль plotly.graph_objects предоставляет более гибкий и детализированный способ создания и настройки графиков в Plotly. Основным объектом в этом модуле является go.Figure, который представляет собой контейнер для всех элементов вашего графика.
Вот пример настройки различных аспектов графика с использованием plotly.graph_objects:

В приведенном примере:
update_layoutиспользуется для настройки общих параметров графика, таких как название, размеры, цвет фона и дрupdate_xaxesи update_yaxes используются для настройки осей, включая название, разметку и другие параметрыlegendвupdate_layoutиспользуется для настройки расположения легенды
Каждый из этих методов предоставляет множество параметров для более тонкой настройки. Подробную информацию о доступных параметрах можно найти в документации Plotly.
Объект Figure в библиотеке Plotly является основной структурой данных, предназначенной для представления графиков и диаграмм. Figure служит контейнером для всех элементов графика, таких как данные, трассы (traces), макет (layout), аннотации и многое другое. Когда вы создаете график с использованием Plotly, вы обычно создаете объект Figure и добавляете к нему различные элементы для отображения информации.
Основные компоненты объекта Figure включают:
Data(Данные). Информация, которую вы хотите отобразить на графике. Например, точки на scatter plot или бары на bar chart. В Plotly, данные обычно представлены в виде объектовtraces.Layout(Макет). Параметры, определяющие внешний вид и расположение графика. Включает в себя названия графика и осей, размеры, цвет фона, расположение легенды и многое другое.Frames(Кадры). В случае анимированных графиков,Figureможет содержать информацию о кадрах, которая представляет собой последовательность "снимков" графика для воспроизведения анимации.
Объект Figure предоставляет множество методов для настройки внешнего вида и поведения графика. Вы можете добавлять дополнительные трассы, аннотации, устанавливать параметры макета и осей, создавать анимации и многое другое.
Добавление интерактивности в графики
Для добавления интерактивных кнопок выбора (radio buttons) и выпадающего меню (dropdown) в график с использованием Plotly Express или Plotly Graph Objects, вы можете воспользоваться методами, предоставляемыми библиотекой. Вот примеры использования обоих методов:

Оба примера добавляют кнопку выбора и выпадающее меню для переключения между разными категориями данных на графике. Вы можете настроить параметры кнопок и выпадающего меню, а также изменить их внешний вид согласно вашим требованиям. Для переноса графиков в презентации и отчеты требуется сохранить их в подходящий формат. Давайте посмотрим на реалиацию этого функционала в Plotly.
Сохранение графиков в различных форматах
Сохранение графиков в различных форматах в Plotly можно осуществить с использованием метода write_image() объекта Figure. Вот пример, демонстрирующий сохранение графика в форматы PNG, SVG и PDF:

Для запуска ячейки после установки библиотеки kaleido нужно перезапустить среду запуска (Runtime -> Restart session)
В данном примере:
- cоздается объект
Figureс графиком типаscatter plot. - настраивается внешний вид графика.
- график сохраняется в форматах PNG, SVG и PDF с использованием метода
write_image().
Помните, что для использования метода write_image() вам может потребоваться установить дополнительные библиотеки, такие как kaleido для работы с форматами, не поддерживаемыми напрямую Plotly (например, PDF). Вы можете установить kaleido с помощью:
Для интеграции в веб-приложения также доступно сохранения графика в формате HTML в Plotly, вы можете воспользоваться методом write_html(). Рассмотрим пример:
В этом примере, после создания и настройки объекта Figure, используется метод write_html(), чтобы сохранить график в формате HTML. После выполнения этого кода, в текущей рабочей директории появится файл plotly_chart.html с интерактивным графиком.
Обратите внимание, что для сохранения в HTML формате не требуется дополнительных библиотек, и это является стандартной функциональностью Plotly.
Выводы
В данном уроке мы рассмотрели различные аспекты создания и настройки графиков с использованием библиотеки Plotly языка программирования Python.
Одним из ключевых преимуществ Plotly является его способность создавать высококачественные интерактивные графики, которые можно легко интегрировать в веб-приложения и документы. Plotly предоставляет большой выбор типов графиков и поддерживает множество пользовательских настроек, останавливается на стыке удобства использования и широких возможностей настройки, что делает его популярным выбором для создания высококачественных визуализаций данных в Python.
Рекомендуемые программы
Завершено
0 / 8

