Визуализация: как погода могла повлиять на самоизоляцию
Всем привет! Меня зовут Паша Дубинин, в Яндекс.Облаке я развиваю сервис для анализа и визуализации данных – Yandex DataLens. Хочу познакомить вас с работой инструмента на актуальном примере — мы решили посмотреть, как погода (температура, облачность, осадки) могла быть связана с индексом самоизоляции. В тексте все расписано пошагово — изучив статью, каждый сможет создавать подобные дашборды со своими данными.
- Подключения. Описание подключения к источнику данных, в данном случае это БД Clickhouse, развернутая в Яндекс.Облаке специально для хранения данных по коронавирусу;
Шаг 1. Работа с DataLens
Yandex DataLens — это инструмент для быстрой визуализации данных из разных источников и предоставления доступа к ним через дашборды. В рамках этого сервиса есть маркетплейс с готовыми наборами данных, дашбордами и коннекторы к другим системам. С ним мы сегодня и поработаем.
Для начала нужно перейти по ссылке, указав учетную запись Яндекс.Паспорт. Если до этого вы не пользовались сервисом, то для полноценной работы потребуется привязать банковскую карту и активировать бесплатный тариф Yandex DataLens. Для данного сценария нам достаточно бесплатного тарифа.
Шаг 2. Разворачиваем пресет Коронавирус: Дашборд и данные
Через маркетплейс развернем пресет (обновляемый набор данных + преднастроенный дашборд) с данными по коронавирусу:
Пресет состоит из:
- Подключения. Описание подключения к источнику данных, в данном случае это БД Clickhouse, развернутая в Яндекс.Облаке специально для хранения данных по коронавирусу;
- Датасетов. Каждый датасет создается на базе подключения и описывает конкретный набор данных, включая наименования полей и их описания, расчетные поля, логику агрегации данных, правила разграничения доступа к данным, регламент их материализации (механизм кэширования данных на стороне DataLens во встроенной БД Clickhouse);
- Чартов. Отдельные графики, гео-визуализации и таблицы, которые строятся на датасетах;
- Дашбордов. Информационные панели, с множеством чартов и общими селекторами для фильтрации данных.
«Коронавирус: дашборд» – это основной дашборд пресета. Можно его открыть и ознакомиться с актуальной статистикой распространения коронавируса и динамикой индекса самоизоляции. В папках «Статистика по миру», «Самоизоляция», «Статистика по России» также расположены соответствующие названиям датасеты и чарты.
Шаг 3. Разворачиваем пресет Погода
Аналогично предыдущему шагу развернем из маркетплейса бесплатный пресет Яндекс.Погоды.
Открыв дашборд «Погода», можно проанализировать исторические данные о погоде по городам с населением более 100 000 человек.
Шаг 4. Объединение датасетов и создание новой визуализации
Создадим новый чарт. Для этого через левую панель навигации перейдем в раздел «Датасеты», затем выберем датасет Isolation Daily:
Справа наверху нажимаем кнопку «Создать Чарт»:
Теперь работаем в конструкторе:
- Меняем тип чарта на «Линейную диаграмму»;
- Поле «Дата» перетаскиваем в секцию X;
- Поле «Город» в секцию «Фильтры», выбираем, например, Москву;
- Показатель «Индекс» перетаскиваем в раздел Y.
Мы получили график изменения индекса самоизоляции по Москве. По нему видно, например, что пик самоизоляции обычно приходится на воскресенье. Сохраним чарт, нажав на кнопку справа вверху и указав название.
Далее добавим к чарту еще один датасет «Weather»:
В появившемся диалоговом окне необходимо настроить связи между датасетами.
Связи должны быть выставлены автоматически по названиям атрибутов «Дата», «Город» и «Страна», поэтому можем нажать на кнопку «Сохранить» и вернуться в конструктор.
Теперь в списке датасетов у нас должно отображаться два датасета, выберем «Weather»:
Теперь мы можем обогатить наш график самоизоляции данными о погоде. Для этого перетащим:
- показатель «Средняя температура» в раздел Y2;
- измерение «Дата» в раздел «Фильтры» и сформируем условие «больше 21 Февраля 2020г» (именно с этой даты начал считаться индекс самоизоляции);
Мы должны получить подобную визуализацию:
Чем выше индекс самоизоляции, тем больше людей оставалось дома. Примечательно, что локальные максимумы температуры, например, 9 и 13 апреля являются локальными минимумами самоизоляции населения города.
Нажмите на кнопку «Сохранить как» справа вверху и выберите новое название для чарта, например, «Самоизоляция и Температура».
Далее заменим показатель «Средней температуры» сначала на «Облачность», затем на «Осадки» и «Максимальную температуру». Каждый из получаемых чартов сохраните в виде отдельного объекта используя кнопку «Сохранить Как» справа вверху.
Шаг 5. Создание дашборда
Теперь создадим дашборд, на котором разместим наши чарты с сопоставлением данных о погоде и самоизоляции.
Для этого, перейдя на главную страницу DataLens, нажимаем справа вверху Создать -> Дашборд. Указываем название и нажимаем «Создать». Открыв этот дашборд, выбираем справа вверху «Добавить»-> «Чарт» и последовательно добавляем созданные чарты:
Затем добавим селектор, с помощью которого можно будет выбирать города. Для этого нужно нажать «Добавить» -> «Селектор».
Далее выбрать Датасет – Isolation Daily, Поле – Город, ставим галочку на «Показывать» (для отображения названия селектора):
В итоге у нас получился такой дашборд (расположение элементов можно просто изменить в режиме редактирования), селектором можно переключать города:
Вместо заключения
Каждый может повторить то же самое и это бесплатно;
- Можно посмотреть данные по своему городу, а не только по Москве, как в примере;
- Можно добавить еще свои данные, например, CSV-файл или подключение к БД;
Более детальная пошаговая инструкция для работы с DataLens здесь;
- Сервис можно также использовать для анализа и визуализации корпоративных данных, как внутри организации (истории AnywayAnyDay, SevenTech), так и для внешних партнеров (история Edadeal).