Исследование данных

В этом уроке вы познакомитесь ещё с несколькими приёмами создания визуализаций в Vega-Lite. Если вы пока не знакомы с Vega-Lite, сначала прочитайте вводный урок.

Мы создадим визуализации для исследования данных о погоде в Сиэтле, полученных от NOAA. Набор данных — это CSV-файл со столбцами температуры (в градусах Цельсия), осадков (в миллиметрах), ветра (в метрах в секунду) и типа погоды. Каждая строка соответствует одному дню с 1 января 2012 года по 31 декабря 2015 года.

Чтобы загрузить CSV-файл в Vega-Lite, укажем URL в разделе данных спецификации. Формат CSV определяется по расширению файла.

"data": {"url": "data/seattle-weather.csv"}

Начнём с осадков. Количество осадков — количественная переменная. Используем штрихи, чтобы показать распределение осадков.

Распределение, по-видимому, смещено к небольшим значениям: когда идёт дождь, осадков обычно выпадает немного. Чтобы это было лучше видно, построим гистограмму. Для этого добавим канал кодирования y с агрегированным количеством записей (count). Поскольку закономерности в непрерывных переменных бывает трудно разглядеть, разобьём значения осадков на интервалы, задав "bin": true. Агрегированные поля и поля с разбивкой на интервалы по умолчанию считаются количественными, поэтому явно указывать "type" не нужно.

Теперь посмотрим, как осадки в Сиэтле меняются в течение года. Vega-Lite поддерживает даты и их дискретизацию. На следующей диаграмме мы усредняем осадки для каждого месяца, группируя даты по месяцам с помощью "timeUnit": "month".

Диаграмма показывает, что зимой в Сиэтле осадков в среднем значительно больше, чем летом. Теперь вы можете самостоятельно построить похожие диаграммы для других переменных!

При исследовании осадков и температуры бывает полезно группировать данные по году и месяцу (yearmonth), а не только по месяцу. Это позволяет видеть сезонные изменения отдельно для каждого года. Подробнее читайте в документации по единицам времени. Можно также задать aggregate равным max, чтобы увидеть максимальную температуру каждого месяца.

Судя по этой диаграмме, максимальная температура растёт от года к году. Чтобы рассмотреть это подробнее, построим диаграмму среднего значения ежедневных максимальных температур.

Да, эта диаграмма тоже показывает рост. Подобное изменение можно наблюдать и для ежедневных минимальных температур. Рассматривая минимальную и максимальную температуру, вы можете заинтересоваться тем, как меняется её размах в течение года. Для этого добавим вычисление нового поля.

"transform": [
  {
    "calculate": "datum.temp_max - datum.temp_min",
    "as": "temp_range"
  }
]

Новое поле temp_range можно использовать так же, как любое другое. Дополнительные операции описаны в документации по преобразованиям данных.

В последней визуализации этого урока исследуем поле weather. Например, нам может быть интересно, как разные типы погоды — солнечные или дождливые дни — распределены в течение года. Чтобы ответить на этот вопрос, сгруппируем date по месяцам и покажем количество записей на оси Y. Затем разделим столбцы по типу погоды, добавив цветовой канал с номинальными данными. Когда поле сопоставлено цвету столбцов, Vega-Lite автоматически располагает сегменты столбцов друг над другом.

Однако смысл цветов стандартной палитры может не совпадать с нашими ожиданиями. Например, мы вряд ли ожидаем, что sun (солнечная погода) будет фиолетовым. Настроим диаграмму, задав диапазон цветовой шкалы, который сопоставляет значениям weather подходящие цвета. Также можно изменить заголовки осей и легенды.

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