интерактивные графики в Dash / Хабр
Dash представляет собой фреймворк для визуализации данных и построения веб-приложений, понятен и довольно прост в применении. Может быть интересен тем, кто хочет использовать интерактивные графики для анализа данных с помощью Python. Рассмотрим построение таких графиков с применением обратных вызовов в Dash.
Фреймворк Dash позволяет создавать веб-приложения с визуализацией различной информации, в частности – графиков. Несомненно, такая функция фреймворка очень полезна для специалиста по анализу данных.
Dash в основном использует «под капотом» Plotly.js (построение диаграмм), Flask (веб-сервер) и React (веб-интерфейс). Вам не нужно разбираться в этих технологиях, чтобы успешно применять Dash в своей работе, достаточно просто иметь базовые знания в Python и представлять, какие графики вы хотите видеть на своем дэшборде.
Интерактивность графических элементов – это способность таких элементов реагировать на действия пользователя (изменяться и перестраиваться в зависимости от выбранных параметров). В Dash данная ответная реакция возможна за счет обратных вызовов (callback). Такие графики динамичны, способны эффективно и наглядно отобразить самую разную информацию об исследуемых данных.
Подробнее про Dash и его функционал советую читать в документации.
Приведу пример создания простого веб-приложения с использованием интерактивных графических элементов фреймворка Dash.
Всю предобработку данных я буду проводить в Jupyter Notebook, а код для дэшборда писать в Visual Studio Code.
Для работы будем использовать датасет с соревнования kaggle: Video Game Sales with Ratings. В нем приведена информация по продажам видео игр с их рейтингами и оценками.
Поставим себе следующую задачу: пусть мы хотим отобразить на дэшборде график зависимости оценок игр от их жанров и гистограмму рейтингов игр по годам, начиная с 2000 года. Наши интерактивные графики должны реагировать на изменение фильтров по жанрам, рейтингам и годам. Для проверки будем выводить еще и интерактивный текст – результат фильтрации (сколько игр соответствует выбранным фильтрам).
Предварительно обработаем данные – оставим только интересующие нас параметры, удалим записи с пропусками и т.п. Код размещен в репозитории на github
Исходные данные
Итак, начало кода стандартно для работы с Dash: импортируем необходимые модули, загружаем обработанные данные и инициализируем Dash
Создадим переменные со всеми жанрами и рейтингами для дальнейшего создания фильтров
Начнем определение внешнего вида нашего приложения. Для этого будем использовать атрибут layout нашего класса Dash. Прописываем в нем древовидную структуру Html-элементов – родительский html.Div и дочерние элементы заголовка (html.h2) и абзаца (html.P). Также зададим элементарный стиль – цвет и положение фона, на котором будет отображаться заданный текст. Далее увидим, что удобно задавать общий стиль для элементов, оборачивая их в один html.Div
Посмотрим, что у нас получилось. Для того, чтобы веб-приложение открывалось, необходимо вызвать в коде его запуск
Запустим само приложение. Результат:
Теперь добавим в layout фильтры с множественным выбором и заготовку для интерактивного текста. В стиле укажем желаемое положение элементов на веб-странице и цвет фона
Замечу, что html.Label – подпись к элементу интерфейса, a dcc.Dropdown – выпадающий список.
При запуске видим фильтры жанров и рейтингов, интерактивный текст отобразим позже
Наконец, добавим заготовку для графиков и фильтр по годам (в виде слайдера). График зависимости оценок игр от их жанров зададим как диаграмму рассеяния
Результат – фильтр по годам и заготовка для графиков
Пришло время добавить в дэшборд немного динамики. Начнем с создания декоратора (app.callback) для результата фильтрации
С изменением входных данных Input (значения фильтров) будут изменяться и выходные данные Output (область текста). Количественный результат фильтрации сохранится в переменной games_count, которую и вернет Output.
Фильтры по умолчанию, результат фильтрации – 712 игр
Добавим жанр Misc, результат фильтрации изменит значение на 895
Теперь немного сложнее, создадим декоратор для гистограммы рейтингов игр по годам
Теперь Output будет возвращать график, который создается в функции update_stacked_area (переменная figure).
Фильтры по умолчанию
Добавим жанров и рейтингов, зададим год релиза – до 2003. График автоматически перестраивается
По аналогии напишем код для графика зависимости оценок игр от их жанров – будем использовать scatter plot (диаграмму рассеяния). По оси x будет оценка пользователей, по y – оценка критиков
Посмотрим на итоговый результат работы интерактивного дэшборда. Фильтры по умолчанию
Добавим жанров и рейтингов, зададим год релиза – до 2014. Интерактивный текст и графики изменятся в соответствии с заданными фильтрами
Полный код размещен в репозитории на github.
Описанный пример обзорно позволяет погрузиться в создание и работу интерактивных графиков в Dash. Это отличный инструмент для специалистов по обработке и анализу данных, который позволяет качественно и быстро визуализировать желаемую информацию.
Попробуйте создать свои собственные интерактивные графики в Dash!
интерактивные графики в Dash — NTA на vc.ru
Фреймворк Dash позволяет создавать веб-приложения с визуализацией различной информации, в частности – графиков. Несомненно, такая функция фреймворка очень полезна для специалиста по анализу данных.
131 просмотров
Dash в основном использует «под капотом» Plotly.js (построение диаграмм), Flask (веб-сервер) и React (веб-интерфейс). Вам не нужно разбираться в этих технологиях, чтобы успешно применять Dash в своей работе, достаточно просто иметь базовые знания в Python и представлять, какие графики вы хотите видеть на своем дэшборде.
Интерактивность графических элементов – это способность таких элементов реагировать на действия пользователя (изменяться и перестраиваться в зависимости от выбранных параметров). В Dash данная ответная реакция возможна за счет обратных вызовов (callback). Такие графики динамичны, способны эффективно и наглядно отобразить самую разную информацию об исследуемых данных.
Подробнее про Dash и его функционал советую читать в документации.
Приведу пример создания простого веб-приложения с использованием интерактивных графических элементов фреймворка Dash.
Всю предобработку данных я буду проводить в Jupyter Notebook, а код для дэшборда писать в Visual Studio Code.
Для работы будем использовать датасет с соревнования kaggle: Video Game Sales with Ratings. В нем приведена информация по продажам видео игр с их рейтингами и оценками.
Поставим себе следующую задачу: пусть мы хотим отобразить на дэшборде график зависимости оценок игр от их жанров и гистограмму рейтингов игр по годам, начиная с 2000 года. Наши интерактивные графики должны реагировать на изменение фильтров по жанрам, рейтингам и годам. Для проверки будем выводить еще и интерактивный текст – результат фильтрации (сколько игр соответствует выбранным фильтрам).
Предварительно обработаем данные – оставим только интересующие нас параметры, удалим записи с пропусками и т.п. Код размещен в репозитории на github
Исходные данные
Итак, начало кода стандартно для работы с Dash: импортируем необходимые модули, загружаем обработанные данные и инициализируем Dash
Создадим переменные со всеми жанрами и рейтингами для дальнейшего создания фильтров
Начнем определение внешнего вида нашего приложения.
Посмотрим, что у нас получилось. Для того, чтобы веб-приложение открывалось, необходимо вызвать в коде его запуск
Запустим само приложение. Результат:
Теперь добавим в layout фильтры с множественным выбором и заготовку для интерактивного текста. В стиле укажем желаемое положение элементов на веб-странице и цвет фона
Замечу, что html.Label – подпись к элементу интерфейса, a dcc.Dropdown – выпадающий список.
При запуске видим фильтры жанров и рейтингов, интерактивный текст отобразим позже
Наконец, добавим заготовку для графиков и фильтр по годам (в виде слайдера). График зависимости оценок игр от их жанров зададим как диаграмму рассеяния
Результат – фильтр по годам и заготовка для графиков
Пришло время добавить в дэшборд немного динамики. Начнем с создания декоратора (app.callback) для результата фильтрации
С изменением входных данных Input (значения фильтров) будут изменяться и выходные данные Output (область текста). Количественный результат фильтрации сохранится в переменной games_count, которую и вернет Output.
Фильтры по умолчанию, результат фильтрации – 712 игр
Добавим жанр Misc, результат фильтрации изменит значение на 895
Теперь немного сложнее, создадим декоратор для гистограммы рейтингов игр по годам
Теперь Output будет возвращать график, который создается в функции update_stacked_area (переменная figure).
Фильтры по умолчанию
Добавим жанров и рейтингов, зададим год релиза – до 2003. График автоматически перестраивается
По аналогии напишем код для графика зависимости оценок игр от их жанров – будем использовать scatter plot (диаграмму рассеяния). По оси x будет оценка пользователей, по y – оценка критиков
Посмотрим на итоговый результат работы интерактивного дэшборда. Фильтры по умолчанию
Добавим жанров и рейтингов, зададим год релиза – до 2014. Интерактивный текст и графики изменятся в соответствии с заданными фильтрами
Полный код размещен в репозитории на github.
Описанный пример обзорно позволяет погрузиться в создание и работу интерактивных графиков в Dash. Это отличный инструмент для специалистов по обработке и анализу данных, который позволяет качественно и быстро визуализировать желаемую информацию.
Попробуйте создать свои собственные интерактивные графики в Dash!
Интерактивные графики | Галерея R Graph
Интерактивные графики | Галерея R Graph Интерактивные диаграммы позволяют пользователю выполнять действия: масштабирование, наведение маркера для получения всплывающей подсказки, выбор переменной для отображения и многое другое. R
предлагает набор пакетов под названием html widgets
: они позволяют строить интерактивные датавизы прямо из R
.
Точечные и пузырьковые графики: используйте
.
Лучший способ построить интерактивную пузырьковую диаграмму из R — это сюжетная библиотека
. Если вы знаете, как сделать диаграмму ggplot2
, вы в 10 секундах от рендеринга интерактивной версии = просто вызовите функцию ggplotly()
, и все готово.
библиотека (ggplot2) библиотека (сюжетно) библиотека (gapminder) п % фильтр(год==1977) %>% ggplot( aes(gdpPercap, lifeExp, размер = население, цвет = континент)) + геометрическая_точка() + тема_bw() ggplotly(p)
← эта диаграмма интерактивна: наведение, перетаскивание, масштабирование, экспорт и многое другое.
plotly
, d3heatmap
или heatmaply
. Существует три варианта создания интерактивной тепловой карты из R
:
-
plotly
: как описано выше, plotly позволяет превратить любую тепловую карту, созданную с помощьюggplot2
, в интерактивную. -
d3heatmap
: пакет, который использует тот же синтаксис, что и базовая функция Rheatmap() для создания интерактивной версии. -
Heatmaply
: самый гибкий вариант, позволяющий выполнять различные настройки. См. код диаграммы рядом здесь.
См. раздел codeHeatmap
Интерактивный потоковый граф и пакет потокового графа
Пакет потокового графа
позволяет создавать интерактивные потоковые графы. Наведите указатель мыши на группу, чтобы выделить ее, получить ее имя и точное значение. Кроме того, это единственный способ построить потоковую диаграмму из R.9.0010
Раздел StreamgraphChart code
Интерактивная диаграмма с областями plotly
.
Еще раз, plotly
ggplotly()
превращает версию ggplot2
в интерактивную. На графике рядом вы можете:- Увеличить, выбрав интересующую область
- Наведите курсор на строку, чтобы узнать точное время и значение
- Экспорт в png
- Ось скольжения
- Дважды щелкните для повторной инициализации.
.png
и .html
. Интерактивную диаграмму можно сохранить в форматах .html
и .png
.
Для этого вы должны полагаться на пакеты htmlwidget
и webshot
соответственно.
Затем можно встроить визуализацию с помощью iframe
тега img
в
любая веб-страница.
Примечание : также можно построить интерактивную диаграмму в документе R markdown, чтобы встроить ее напрямую.
Подробнее
# создать набор данных: данные
. Создайте потрясающую интерактивную карту за минуту благодаря пакету листовка
.
Позволяет создавать карты любого типа: фоновые, пузырьковые, картограммы, гексбин и многое другое.
Трехмерные диаграммы с rgl
Пакет rgl
— лучший инструмент для работы в 3D от R. Здесь
является иллюстрацией: трехмерная диаграмма рассеяния, показывающая взаимосвязь между
3 числовые переменные.
Обратите внимание, что rgl
автоматически создает
интерактивные графики. Масштабирование и вращение действительно могут сделать диаграмму более информативной.
Исходный код3D-раздел
Попытка масштабирования/вращения →
Интерактивная хордовая диаграмма с chordiag
Пакет chorddiag
представляет собой htmlwidget: он автоматически строит интерактивные диаграммы. На приведенной ниже диаграмме при наведении курсора на группу или соединение будет выделен соответствующий поток и предоставлена дополнительная информация.
Примечание : приведенный ниже пример взят непосредственно из документации chorddiag
. Спасибо Mattflor за разработку такой красивой упаковки.
Секция хорды Код схемы
Интерактивная кольцевая упаковка с помощью circlepackeR
Библиотека CirclepackeR
позволяет получить интерактивную круговую упаковку с несколькими уровнями иерархии. Нажмите на группу , чтобы увеличить ее. В посте описывается, как использовать пакет из разных типов входных наборов данных.
Круглая упаковочная секция Код схемы
Интерактивная дендрограмма с складным деревом
Пакет collapsibletree
представляет собой htmlwidget: он автоматически создает сворачиваемую интерактивную древовидную диаграмму. На приведенной ниже диаграмме щелкните узел , чтобы открыть следующую ветвь, и при необходимости увеличьте/уменьшите масштаб.
Раздел ДендрограммаКод диаграммы
Интерактивный сетевой график: networkD3
Пакет networkD3
позволяет строить интерактивные сетевые диаграммы с помощью R. На приведенной ниже диаграмме попробуйте навести указатель мыши на узел и перетащить его, чтобы увидеть, как он работает. Вы также можете прокручивать, чтобы увеличивать и уменьшать масштаб. Посетите соответствующий пост, чтобы узнать, как использовать этот инструмент в вашем наборе данных.
Получить код
Временные ряды: dygraph
Пакет dygraph
предлагает масштабирование, зависание, миникарты и многое другое. Попробуйте на примере ниже!
Получить кодРаздел временного ряда
Связанные типы диаграмм
Ggplot2
Анимация
Интерактивность
3D
Предостережения
Дата искусство
Бесплатно создавайте красивые интерактивные графики.
Адаптивные и простые в использовании типы диаграмм для любых нужд.
Выберите тип диаграммы, чтобы узнать, для чего ее использовать:
Гистограмма
Классическая гистограмма — непревзойденная по простоте и более удобочитаемая, чем столбчатая диаграмма на экранах мобильных устройств. Настройте его дизайн под свои нужды в Datawrapper.
Узнайте больше о наших столбчатых диаграммах
Разделенные столбцы
Отлично подходят для демографических пирамид или для всех других случаев, когда вы хотите, чтобы читатели сравнивали категории в нескольких столбцах.
Узнайте больше о разделенных столбцах
Столбики с накоплением
Популярный способ визуализации результатов опроса по шкале от «согласен» до «не согласен». Он полезен во всех ситуациях, когда вы хотите, чтобы ваши читатели сравнили доли в разных категориях.
Узнайте больше о столбчатых столбцах
Сгруппированные столбцы
Полезный вариант классической гистограммы для сравнения значений по двум или более категориям.
Узнайте больше о наших сгруппированных стержнях
Маркированные столбцы
Если вы хотите показать, как запланированные или предполагаемые цифры соотносятся с фактическими, хорошим выбором будут маркированные диаграммы.
Узнайте больше о наших гистограммах
Точечный график
Точечный график похож на гистограмму, но не обязательно начинать с нуля. Вы можете отображать несколько точек для каждой категории, что позволяет сэкономить место.
Узнайте больше о наших точечных диаграммах
Диаграмма диапазона
Графики диапазона отлично подходят для отображения разницы между двумя переменными. Это эффективная альтернатива использованию сгруппированных гистограмм.
Узнайте больше о наших графиках диапазонов
Графики со стрелками
Графики со стрелками полезны для сравнения показателей в разных категориях в два раза, например, сегодня и три года назад.
Узнайте больше о наших диаграммах со стрелками
Столбчатая диаграмма
Классическая столбчатая диаграмма удобна для чтения и полезна не только для категорий. Столбчатые диаграммы Datawrapper могут иметь даты на оси X, что делает их хорошим выбором для демонстрации того, как что-то развивается с течением времени.
Узнайте больше о наших гистограммах
Сгруппированная столбчатая диаграмма
Полезный вариант классической столбчатой диаграммы для сравнения значений по двум или более категориям.
Узнайте больше о наших сгруппированных столбчатых диаграммах
Столбчатая диаграмма с накоплением
Чтобы показать, из каких подкатегорий состоят ваши категории, хорошо подойдет столбчатая диаграмма с накоплением.
Узнайте больше о наших столбчатых диаграммах с накоплением
Диаграмма с областями
Подобно линейной диаграмме, диаграмма с областями может отображать изменения во времени в нескольких категориях, а также сумму их значений.
Узнайте больше о наших диаграммах с областями
Линейная диаграмма
Линейные диаграммы отлично подходят для отображения изменений во времени. Они особенно полезны, когда они имеют прямую маркировку, например метки стран на диаграмме справа.
Узнайте больше о наших линейных диаграммах
Круговая диаграмма
Нелюбимые некоторыми, круговые диаграммы очень интуитивно понятны, когда вы хотите показать доли целого, и поэтому заслужили свое место в нашей коллекции типов диаграмм.
Узнайте больше о наших круговых диаграммах
Кольцевая диаграмма
Кольцевая диаграмма аналогична круговой диаграмме, но в отверстии для кольцевой диаграммы имеется место для дополнительной информации.
Узнайте больше о наших кольцевых диаграммах
Несколько кругов
Иногда одного круга недостаточно. Несколько кругов — это увлекательный способ сравнить несколько категорий и их доли друг с другом.
Узнайте больше о наших множественных круговых диаграммах
Несколько пончиков
Что может быть лучше одного пончика? Несколько пончиков! Как и в случае с одним пончиком, в нескольких пончиках есть место для дополнительной информации, которую вы можете использовать, но не обязаны.
Узнайте больше о множественных кольцевых диаграммах
Точечная диаграмма
Точечная диаграмма полезна для отображения корреляции между двумя (или более!) переменными. Как между потреблением мороженого и счастьем. Или между использованием Datawrapper и красивыми диаграммами.
Узнайте больше о наших точечных диаграммах
Кольцевая диаграмма выборов
Диаграмма парламента или кольцевая диаграмма выборов — это интуитивно понятный способ показать, какие партии входят в законодательный орган.
Узнайте больше о наших предвыборных пончиках
Больше, чем статические диаграммы: отзывчивые, настраиваемые и обновляемые в реальном времени.
Вот что сделает вашу жизнь проще.
Неограниченное количество визуализаций
Даже в нашем бесплатном плане количество диаграмм, карт и таблиц, которые вы можете создать, не ограничено.
Поставляется в вашем дизайне
Отправьте нам свое руководство по стилю, и мы создадим индивидуальную тему диаграммы для вашего бренда, на 100% белую маркировку.
Частный по умолчанию
Независимо от того, какой план вы выберете, все ваши визуализации и данные будут закрытыми, пока вы не нажмете кнопку «Опубликовать».
Отзывчивый
На настольных устройствах, планшетах или смартфонах — визуализации Datawrapper красивы и удобочитаемы везде.
Совместная работа в группах
Используйте общие папки, интеграцию Slack и Teams и права администратора, чтобы видеть, что создает ваша команда.
Автоматизируйте создание диаграмм
Создавайте, обновляйте и экспортируйте визуализации одним щелчком мыши, используя наш современный API.
Произведения для большой аудитории
Визуализации Datawrapper масштабируются до самой большой аудитории и поддерживают даже миллионы зрителей.
Экспорт PNG, SVG, PDF
Экспорт каждой визуализации в формате PNG, SVG или PDF и продолжение работы, например, в Adobe Illustrator.
Готовая к печати графика
Возможны даже готовые к печати файлы PDF с определенными цветами CMYK.
Показать все функции
Ты в хорошей компании.
Ведущие издания, такие как The New York Times и WIRED, строят диаграммы с помощью Datawrapper.
Центр правосудия Бреннана
Беспартийный институт права и политики Центр правосудия Бреннана, базирующийся на юридическом факультете Нью-Йоркского университета, приводит факты о запрете мусульман в этой статье от июня 2019 года.
Посетите статью на brennancenter. org
ПРОВОДНОЙ
Технический журнал WIRED объясняет движение акций крупных технологических компаний с помощью специальной темной темы.
Посетите статью на wired.com
ZEIT Онлайн
Немецкий новостной сайт ZEIT Online использует наши диаграммы, чтобы ответить на вопрос, почему в Германии в наши дни рождается так много детей.
Посетите историю на zeit.de
Нужна помощь в создании диаграмм Datawrapper?
Мы здесь для вас.
Посетите нашу Академию
Более 100 статей Академии шаг за шагом объясняют, как создавать диаграммы каждого типа.