Блог Тани Бибиковой

о визуализации данных и жизни

Алгоритм Δλ: помощь зала

Алгоритм визуализации, который я описываю, рождается на ходу. Я начала писать теоретические заметки в феврале, не подозревая, куда этот процесс меня приведёт. С тех пор появилось 8 заметок, и каждая из них меняла мой взгляд на описанные ранее вещи. Пришло время сделать паузу, выстроить мысли в последовательную историю, обозначить белые пятна и прислушаться к читателям.

Итак, вот как я вижу процесс создания визуализации от начала до конца.

  1. Таблицы и базы ≠ данные. Таблицы однообразны. Данные каждой задачи уникальны и живут в собственной реальности данных. Эту реальность нужно вообразить: 1, 2, 3.
  2. Данные состоят из элементарных частиц, в одном наборе данных бывают частицы одного или нескольких видов. Каждая частица характеризуется набором свойств. Важно представлять, каков «физический смысл» этих свойств в реальности данных и как они связаны между собой.
  3. На экране частицы данных выражены визуальными атомами (1, 2, 3), у каждого атома свой набор измерений и свойств. Визуальные атомы подбираются таким образом, чтобы полно и наглядно раскрывать свойства частицы данных. Чем ближе визуальное воплощение к физическому смыслу атрибута, тем лучше.
  4. Множество элементарных частиц образует массу данных: сыпучую, пластичную, меняющуюся. Массой данных можно управлять: взглянуть на неё с разных сторон, разделить на подмножества так и эдак, сравнивать эти подмножества между собой. Подмножества состоят из тех же частиц данных, что и целое, ими можно так же управлять.
  5. На экране масса данных выражена визуальной массой. Бывает, что в визуальной массе различимы отдельные атомы, в других случая они усредняются и складываются. О визуальном сложении и усреднении я ещё напишу.
  6. Помимо массы данных, в реальности данных есть набор измерений, ландшафт, в котором живут данные.
  7. На экране ландшафт схлопывается в одно-два-три измерения и становится каркасом визуализации. Гибкая визуальная масса легко «облепляет» жёсткий каркас, раскрываясь под определённым углом. Сложный ландшафт потребует двух и более каркасов. О видах каркасов я ещё напишу.
  8. Визуализацию дополняют интерфейсом для управления массой данных (например, выборки и поиск) и каркасом (например, настройка осей). Об интерфейсной обёртке визуализации я ещё напишу.

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

Иллюстрация Йоко Д'олбачи

Следующая теоретическая заметка выйдет 5 сентября.

Лабораторный слёт в Крыму

9…17 июля 2016 года. Село Соколиное, горный Крым, уютная усадьба Кутлер. Одиннадцать взрослых и четверо детей — почти вся лабораторная команда с семьями и половинками, с одним единственным, очень досадным исключением. Шашлыки, баня, батут, бассейн, горы, озёра, вкуснейшие местные персики и виноград. Третий день рождения Лаборатории данных отпраздновали на закате, на свежем воздухе, в чудесной компании.

Фото Димы Семьюшкина

Собраться, всё организовать, продумать рабочие форматы и спланировать развлечения на большую разномастную компанию было не просто. Каждый день сразу после завтрака я уходила с кем-то из лаборантов на длинную прогулку по лесу, мы обсуждали рабочие вопросы, личные планы и всё, о чём важно было поговорить нам обоим. Одна прогулка — 8-10-12 километров. Каждый день после детского (и моего) тихого часа мы все вместе обсуждали главный лабораторный проект: ребята рассказывали мне о работе, делились проблемами, задавали вопросы, спорили. Быть рядом, слушать, отвечать, решать, брать и передавать ответственность, вдохновлять и поддерживать — всё это потребовало сил, которых сейчас не так чтобы много. Я очень устала за эту неделю, но эта усталость — хорошая, как боль в мышцах после непривычно долгих прогулок.

Фото Ромы Бунина, сделанное во время нашей с ним прогулки

Я заряжала батарейки, общаясь с ребятами и их замечательным жёнами, прыгая на батуте с детишками, в поездках на озеро и в философских спорах за ужином. Эмоций и впечатлений гораздо больше, чем мыслей и слов. Кое-что передают фотографии.

Батут как полюс веселья и общения: Саша и Данила

Данила, Яна и демонический бык

Саша, Лиза и Данила

Победила дружба. Детишек фотографировала Полина Ошуркова

Батут не только для активного отдыха

В бассейне — хорошо. Фотография Димы Бибикова

Но на озере — лучше! Фотография Ромы

Завораживающее фаер-шоу в исполнении Димы и Лены. Фотография Полины

На Утюг-горе, сфотографировал Дима

Все эти дни я светилась изнутри. Радостно быть вместе, общаться, делиться с ребятами мыслями и энергией, дружить. Радостно сознавать, что мы — команда в полном смысле этого слова :-)

Прогулка в Солнечноселье, сфотографировала Полина

Алгоритм Δλ: визуальные атомы, часть 3

Заключительная заметка о визуальных атомах (первая и вторая части). Сегодня поговорим о мини-графиках и картографических атомах.

Мини-графики
Иногда смысловой частицей данных, которую мы изучаем и сравниваем, является не единичное значние, а набор или серия значений. На прошедшем в апреле учебном курсе один из студентов визуализировал показания датчиков, контролирующих производственные процессы. Десятки датчиков измеряли различные величины иногда с частотой раз в секунду. В такой ситуации формально квантом информации является отдельное измерение, но осмысленной частицей данных будет «поток», то есть последовательность значений с каждого датчика. Потоки визуализируются мини-графиками, из которых складывается общая картина и которые можно сравнивать между собой. Вот грубая иллюстрация на примере схемы Регуляра — реальное расположение приборов и визуализация:

Вид мини-графика зависит от измеряемой величины, можно отметить минимумы, максимумы и допустимый диапазон

На визуализации занятости жителей Миннесоты хорошо видна сезонность в одних отраслях, рост и спад в других:

Видно появление и исчезновение таинственной отрасли Animal Aquaculture и космической программы — Space Research and Technology, в полной версии на сайте

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

Частота употребления слов в официальных обращениях американских политиков:

Резкие пики сопровождаются пояснениями редакции

Климат разных городов на визуализации температурных рекордов, сравниваем толщину (разброс температур) и окраску (конкретные значения относительно нуля):

Активность у своих и чужих ворот, слабые и сильные стороны команд на визуализации голевых моментов:

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

Географические атомы: точка, объект, область, маршрут

Визуальные атомы на карте могут быть точечными (точки, круги, объекты), площадными (области) и протяжёнными (линии).

Точки на карте — это места, события и объекты с конкретными координатами. В зависимости от масштаба карты точка может быть квартирой в доме на конкретной улице или целым городом.

Например, квартиры, сдающиеся через «Эйрбнб»:

Уже знакомые нам землетрясения:

И полезные/вредные приёмы пищи, слившиеся в облака:

Сложенные стопками смертельные случаи заболевания холерой на знаменитой карте Джона Сноу:

Дома Москвы, родом из разных эпох:

Достопримечательности на карте-путеводителе:

Точечные объекты на карте передают информацию своим положением, цветом, размером, а также засчёт подписей и картинок. Если данных для каждого объекта слишком много, располагать их на карте будет не лучшим решением. Карта диктует жёсткую топологию, и экранное пространство используется неэффективно. В таком случае я советую показать данные в виде мини-графиков, а карту использовать как дополнительный справочный элемент:

При наведении на мини-график город на карте подсвечивается красным.

Площадные объекты — это области на карте: городские кварталы, районы, округа, страны и другие государственные территориальные единицы, а также геологические и географические регионы. Площадные объекты передают сводную информацию по территории, чаще всего с помощью цветной заливки.

Однотонная показывает один параметр, например, высоту застройки или стоимость земли на Манхэттене:

Двухцветная — близость к полюсам шкалы:

Заливка полупрозрачными слоями делает акцент на пересечении накладывающихся друг на друга областей:

Границы районов Бостона, как их видят жители

На карте затопления Венеции площадная заливка улиц и площадей сочетается с точечной окраской пострадавших от наводнений зданий:

Карта может быть настоящим произведением искусства, с большим количеством цветов и оттенков:

Геологическая карта Пенсильвании

На «карте здоровья» части света покрыты паттерном человеческих тканей и клеток, поражаемых самой распространённой там болезнью:

Северная Америка покрыта жировой тканью, Европа — мозговыми нейронами (слабоумие), Африка — кровяными тельцами (малярия и СПИД), на страдающей от бесплодия Гренландии изображены сперматозоиды

Вместо заливки иногда используются изолинии, как на этой карте запахов Эдинбурга:

Протяжённые объекты на карте — это путевые сети, маршруты, границы, а также реки и горные цепи. Связанные с ними данные визуализируются линиями и змейками разной толщины, цвета и яркости.

Классическая карта Шарля Минара показывает объёмы экспорта угля Англией:

Поток делится на крупные рукава, потом на более мелкие — в соответствии с морскими путями доставки угля

Суточное движение швейцарских поездов:

Цветом линии показана скорость поездов, толщиной — их загруженность

Ветра в Токио в режиме реального времени:

Чем длиннее линии, тем сильнее дует

Воздушные пути на разной высоте над городами мира:

Высота полёта закодирована цветом

Поток беженцев из разных стран:

Чем больше поток, тем ярче луч

Вся пресная вода земного шара, как на ладони:

Сразу видно, где густо, а где пусто

При визуалиции геоданных важно учитывать характер данных и выбирать соответсвующие визуальные атомы. Привязывать точечные данные к областям, а сводные параметры по целым регионам или протяжённым объектам отображать точками, на мой взгляд, грубая ошибка.

Следующая теоретическая заметка выйдет 8 августа.

Алгоритм Δλ: визуальные атомы, часть 2

Продолжение заметки о визуальных атомах. Сегодня поговорим о прямоугольниках, отрезках и линиях.

Прямоугольник
Прямоугольники обладают четырьмя собственными свойствами (ширина, высота, их производная — площадь, цвет) и легко складываются друг с другом.

Прямоугольники единичной ширны складываются в столбиковую диаграмму:

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

Элементарная частица продаж интернет-магазина — продажа, визуальный атом — прямоугольник единичной ширины, его высота соответствует сумме продажи. Высота столбика на диаграмме показывает суточную выручку. Цветом показаны будни и выходные дни.

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

Например, если количество детей в возрастной группе задаёт высоту прямоугольника, а доступность садиков для этой группы — его ширину, то площадь прямоугольника соответсвует количеству детей этого возраста, попавшему в сад.

Видим, что проблема для группы 1,5-2 года стоит острее, чем для группы 2-2,5 года — хоть доступность садов в ней и выше, но нуждающихся в садике детей намного больше.

По такому же принципу прямоугольники образуют квадратные и тримэп-диаграммы:

Отрезок
Отрезок визуализирует частицу данных, состоящую из двух связанных элементов.

Это может быть связь двух объектов, например, брачный союз людей разных профессий:

Связь «до и после» двух значений одного и того же параметра, например, количество высокооплачиваемых должностей в различных индустриях:

.
Связанные попарно значения, например, результаты ответов на вопросы теста, личный и средний по соотечественникам:

Или пара связанных пространственных координат, например, начальное и конечное положение мяча при ударе по воротам:

Линия
Линия показывает путь или историю объекта во времени. Для линии важны не только точка начала, точка конца и связь (как в отрезке), но и форма пути между ними. Линии сливаются в потоки и делятся на русла.

Частица данных — кандидат, проходящий этапы воронки собеседований

Частица данных — штат, изменяющий свои настроения во времени

Частица данных — поезд метро, движущийся между станциями

Частица данных — заключённый, проводящий срок в тюрьме Гуантанамо

Частным случаем линии является географический маршрут.

Частицы данных — французы армии Наполеона, наступающие на Москву и отступающие обратно

О мини-графике и географических атомах (точке, области, объекте и маршруте) я расскажу в третьей, заключительной заметке.

Следующая теоретическая заметка выйдет 4 июля.

Алгоритм Δλ: визуальные атомы, часть 1

Сегодня я расскажу о наглядном визуальном кодировании частиц, из которого естественным образом вырастает содержательная и наглядная визуализация.

После ответа на вопрос о том, что является элементарной частицей данных, задумайтесь, как её лучше всего показать. Элементарная частица данных — это визуальный атом, и её воплощение должно быть атомарным. Основные визуальные атомы: пиксель, точка, круг, черта, квадрат, ячейка, объект, прямоугольник, отрезок, линия и мини-график. Выбор атома следует из свойств частицы данных и её поведения в реальности данных.

Пиксель
Пиксель — минимальная экранная единица, пиксели обозначают «безликие», неотличимые друг от друга частицы, которые сливаются в единое целое, например, бюджет страны, стоимость товаров и услуг, дефицит личного бюджета, бюджет фильма или результаты опроса. Пиксели суммируются в столбцы, прямоугольные области и потоки, площадь которых пропорциональна сумме частиц данных.

Эффективность предприятия в прошлой заметке также складывается из пикселей — тонн продукции:

Точка
В отличие от пикселя, точка кодирует отдельные, явно различимые объекты: спортсменов, рядовых американцев, сотрудников, температурные рекорды, землетрясения, медали, приёмы пищи и т. п. Цвет точек отражает качественную или количественную характеристику.

В простом случае точки занимают свои позиции и отображаются на графике по отдельности:

Медалисты всех олимпиад в беге на 100 м

Годовая зарплата и результативность ведущих американских бейсболистов (по командам)

Активность американцев в разное время суток

Иногда точки соединяет кривая:

Если точки необходимо просуммировать, способ визуального суммирования зависит от характера данных.

Для складывания элементов в стопки в одном измерении подходят чёрточки:

Для составления столбиковых диаграмм используют квадратики:

Иногда точки просто накладывают друг на друга с прозрачностью, в таком случае яркие точки показывают наиболее распространённые значения:

Температурные рекорды в РФ

Землетрясения с 1898 года

Большое количество точек сливают в круги, потоки и облака, в них точки перестают быть различимыми:

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

Круг
Круг помимо цвета и расположения имеет радиус, который кодирует дополнительное измерение данных. Классический пример элементарных частиц-кругов — страны на Гэпмайндере, где изменяющийся со временем радиус круга показывает рост популяции:

Здесь частицей данных является страна, в отличие от рассмотренного выше примера с олимпийскими медалями, где элементарной частицей является медаль, и уже медали суммируются в круги-страны.

Другие примеры:

Круги — крупные американские компании, радиус показывает их «вес» (рыночную стоимость), цвет — размер налоговой ставки

Круги — картины Пабло Пикассо, радиус показывает стоимость проданных на аукционах картин, цвет — тип (масло/акварель-гуашь)

Ячейка
Ячейка — это элемент регулярной сетки, как правило, квадратной формы. Линейные размеры ячейки не имеют значения. Частицы данных распределяются по сетке, а их свойства суммируются или усредняются и отображаются цветом ячейки.

Суммирование может быть примитивным (чем больше, тем ярче):

Или оценочным, например, с использованием светофорного градиента «хорошо-плохо»:

В этом примере на одной сетке просуммированы сон и ходьба городских жителей:

Объект
Роль точки на графике может играть реальный объект. В этом случае к свойствам, показанным на графике, добавляется наглядная информация с изображения объекта.

Классический пример Эдварда Тафти — график соотношения массы мозга и массы тела с животными вместо точек. Легенда не требуется:

Точки-воины и мирные жители в визуализации потерь Второй мировой войны:

Лабораторная визуализация характеристик танков из игры WoT, размеры танков на графике соответствуют реальным размерам:

Диаграммы и графики о флагах мира, собранные из флагов:

График изменения шерсти амурского тигра из шерстинок показывает не только длину, но и густоту шерсти, и появление подшёрстка:

В следующих заметках я расскажу об оставшихся визуальных атомах: прямоугольнике, отрезке, линии и мини-графике.

Следующая теоретическая заметка выйдет 20 июня.

Алгоритм Δλ: элементарные частицы данных

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

Визуализация показывает и объясняет реальность данных так же, как физика описывает реальность нашего мира. Чем глубже визуализация погружает зрителя в данные, тем лучше он понимает суть происходящего.

Вот типичный интерактивный бизнес-отчёт:

Визуализация нескольких усреднённых параметров показывает положение дел, но не объясняет почему эти цифры таковы, что на них влияет и что можно улучшить. В приведённом примере нет живой массы данных, только застывшие, расчитанные внутри системы срезы. Попробуем взглянуть на задачу иначе: представим реальность данных, в которой завод выпускает продукцию. Каждый день производство отгружает тонны масла и сопутсвующих продуктов с некоторой долей брака, бригады сменяют друг друга, машины простаивают из-за отсутствия сырья, ломаются, проходят плановое техобслуживание. Данных и сущностей так много, что кажется, что показать их все на одной визуализации невозможно.

Последуем примеру физиков и постараемся выстроить общую картину из элементарных частиц. Частицей будет тонна продукции, выпущенная конкретной машиной, расположенной в конкретном цеху, во время работы конкретной бригады. Выделенная частица сама подсказывает своё визуальное воплощение: тонну продукции закодируем чёрточкой единичной толщины, её цветом — качество «норма/брак». Из частиц соберём следующую осмысленную визуальную единицу: результат работы за час, смену, сутки и т. д.

Во временной развёртке появляется ещё один тип частиц: часы простоя. Их суть и визуальное обозначение — дыра в производительности. Разные причины простоя закодируем цветом «дыры». Вот как выглядит результат дневной работы одной из машин:

Утром машина начала выдавать брак и пришлось потратить несколько часов на ремонт, ещё час она выходила на рабочий режим, после чего её производительность стала отличной. Эффективность за день получилась всего 22% из-за плохого старта.

Суммируя элементарные частицы получаем картину производительности машины, бригады, целого цеха и даже всего производства (при условии, что тонны суммируются с тоннами, а не с погонными метрами — в данном случае это так). Цветные дыры превращаются на общей статистике в мини-график простоев:

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

Этот пример демонстрирует, как элементарные частицы делают визуализацию мощнее и глубже, и как визуальное воплощение элементарных частиц следует из их свойств и предполагаемых способов «суммирования» с другими частицами. О том, как выбирать визуальное кодирование элементарных частиц и суммировать их в общую картину я расскажу в следующих заметках.

Следующая теоретическая заметка выйдет 30 мая.

Курс по визуализации данных, 23 и 24 апреля

23 и 24 апреля мы с техдиром лаборатории Димой Семьюшкиным провели брейнвошинг по визуализации данных — первый после двухлетнего перерыва.

Свою (дизайнерскую) часть курса я посвятила описанному накануне алгоритму визуализации данных. Участники приняли наш нестандартный подход с интересом, задавали вопросы, помогали прояснить сложные моменты и точнее сформулировать суть алгоритма, тестировали его на рабочих задачах. Курс показал, что сам алгоритм и процесс обучения требуют доработки, но вектор выбран правильный. Я получила заряд вдохновения и буду «копать» дальше!

Дима взял за основу обкатанные на прошлых курсах лекции и дополнил их ещё более понятными и наглядными объяснениями. Судя по отзывам, введение в D3.js стало по-настоящему простым и доступным даже для «совсем новичков». Правда, опытным программистам не хватило сложных примеров и было скучновато. Постараемся это исправить на следующем курсе.

Атмосфера на курсе получилась классная: искренний интерес к визуализации и внимание со стороны участников, вопросы, поиск решений, обсуждения. Мы с Димой очень старались вложить в лекции душу и любовь к данным :-)

На курс собрались ребята из Риги, Рязани, Омска, Питера и Москвы, из Билайна, Сбербанка и других замечательных компаний, а заодно почти вся лабораторная команда. Спасибо всем за эти два дня, было здорово!

Следующий курс — осенью.

Алгоритм Δλ: главная идея и шаги

Визуализацию можно разделить на две независимые составляющие: массу данных и каркас. Каркас жёсткий, он состоит из осей, направляющих, областей. Каркас организует пространство пустого экрана, он передаёт структуру данных и не зависит от конкретных величин. Масса данных — концентрат информации, она состоит из элементарных частиц данных. Благодаря этому она пластична и «облепляет» любой заданный каркас. Масса данных без каркаса — бесформенная груда, каркас без массы данных — голый скелет.

В примере с Московским марафоном, элементарная частица данных — это бегун, масса — толпа бегунов. Каркас основной визуализации составляет карта с маршрутом забега и временным слайдером.

Та же масса на каркасе, образованном осью времени, даёт диаграмму финишей:

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

Другие примеры частиц данных:
— солдат и мирный житель в визуализация потерь «Fallen.io»,
— землетрясение в истории землетрясений,
— час активности или сна на диаграмме о ритме жизни городов,
— гол и голевой момент в футбольной аналитике,
— попытка ответа на вопрос в статистике тренажёра ПДД,
— танк в сравнении характеристик танков WoT,
— трата в анализе личных расходов,
— доллар на логарифмической мани-грамме.

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

Создание визуализации сводится к следующим шагам:

  1. Описание реальности данных, из которой будут выделены масса данных и каркас, и постановка задачи.
  2. Поиск элементарных частиц, которые сформируют массу данных.
  3. Построение каркаса для решения поставленной задачи.
  4. Выбор способа визуального кодирования частиц на заданном каркасе.
  5. Добавление интерфейсной обёртки, которая управляет массой данных.

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

Вместе шаги составляют алгоритм визуализации, который я сформулировала на основе собственного опыта и лабораторных проектов. Я нигде не встречала подобного подхода, поэтому скромно назову его алгоритмом Лаборатории данных :-)

Чтобы познакомиться с нашим алгоритмом «из первых рук» и научиться его применять, приходите на брейнвошинг по визуализации данных, который я проведу в Москве, 23 и 24 апреля.

Следующая теоретическая заметка выйдет 16 мая.

Реальность данных и постановка задачи

Качественная визуализация показывает реальность данных под определённым углом, который интересует наблюдателя. Реальность данных отвечает на вопрос «Что происходит?», а постановка задачи (угол) — на вопрос «Зачем мы исследуем данные?» или, иначе говоря, «Что мы ищем?»

Вернёмся к примеру с маршрутными такси. Реальность данных:

Автобусы перевозят пассажиров по маршрутам общественного транспорта. Маршрут состоит из остановок, за день на маршруте выполняется несколько рейсов. Расписание движения по маршруту для каждого рейса задано временем прибытия на остановку. В каждый момент о каждой «машине» известны координаты, скорость и количество пассажиров на борту, а также какой рейс по какому маршруту она выполняет, и какой водитель за рулём.

Транспортные аналитики хотят выяснить:
Как меняется загруженность автобусов на маршруте в среднем в течение дня?
Как часто и насколько серьёзно нарушается расписание движения?
Где находятся, насколько загружены, как сильно отклоняются от расписания автобусы в данный момент времени?

Реальность данных диктует пространственную структуру: маршрут, разделённый на участки разной длины между остановками. В такой структуре присутсвуют все объекты (остановки, участки между ними, машины на маршруте), к ним легко привязать соответствующие данные: опоздания — к точками остановок, превышения скорости — к фрагментам маршрута, загруженность — к участкам между остановками, на которых она остаётся неизменной. На маршруте можно визуализировать текущее положение и скорости автобусов, статистику рейса, усреднённые данные за часть суток и за календарный период.

«Загруженность автобусов в среднем в течение дня» перестаёт быть абстрактным значением, вычисленным в недрах системы и показанным в таблице. Она раскладывается на «элементарные» загруженности рейсов на разных участках маршрута в разное время.

Покажем средний поток пассажиров, перемещающихся от остановки к остановке по будням утром, днём и вечером, буквально — «потоком». Видим разницу потока в утренние и вечерние часы пик и в спокойные дневные часы.

Задачу о визуализации нарушений на одном из маршрутов я решала в рубрике «Вопрос-ответ». Вот как будет выглядеть сводка по нарушениям на маршруте утром, днём и вечером:

Опоздания по утрам и вечерам концентрируются в разных частях маршрута.

Если мы захотим понять, как нарушения накладываются на загруженные и не очень части маршрута, нам достаточно буквально «наложить» визуализации друг на друга.

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

Одна реальность данных в зависимости от постановки задачи выражается в разных форматах визуализации. Но в отличие от отчётов, которые отвечают на вопросы «в лоб», визуализации построены на едином фундаменте, «дружат» между собой и легко объединяются в интуитивно понятные связки.

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

Следующая теоретическая заметка выйдет 11 апреля.

Реальность данных, примеры

Данные порождает объективная реальность. Например, по маршрутам общественного транспорта ездят автобусы, которые в разное время перевозят разное количество пассажиров, соблюдают расписание или опаздывают, нарушают скоростной режим и правила дорожного движения, сходят с рейса. Датчики собирают данные о местонахождении, скорости и загруженности каждой «машины» в каждый момент времени. После этого данные попадают в базу данных и доступны в виде отчётов (срезов): время посещения остановок и отклонения от расписания на конкретном маршруте, загруженность маршрута в зависимости от времени дня, список нарушений конретного водителя за день/неделю/месяц и т. п.

Как правило, мы получаем доступ к данным и знакомимся с ними именно в виде таких таблиц и отчётов. Вместо полной картины, мы видим (и визуализируем) поля, значения и срезы. Поэтому вместо одной лаконичной визуализации получается десяток разрозненных диаграмм, карт и индикаторов. Чтобы это исправить, я советую начинать работу с описания реальности данных.

Реальность данных — это выжимка объективной реальности, которая касается только конкретной задачи и доступных данных. В описанном выше примере, реальность данных выглядит так. Автобусы перевозят пассажиров по маршрутам общественного транспорта. Маршрут состоит из остановок, за день на маршруте выполняется несколько рейсов. Расписание движения по маршруту для каждого рейса задано временем прибытия на остановку. В каждый момент о каждой «машине» известны координаты, скорость и количество пассажиров на борту, а также какой рейс по какому маршруту она выполняет, и какой водитель за рулём.

Обратите внимание, что в реальности данных нет постановки задачи, только описание объектов, их свойств, связей между ними и процессов. За рамками реальности данных остаются некоторые аспекты объективной реальности, которые имеют отношение к задаче, но неизвестны нам (например, погода или настроение водителя). Формулировка стремится к полному и последовательному описанию, в остальном она может быть свободной. Приведу ещё несколько примеров.

Марафон
Итоговые протоколы забега содержат поля: фамилия и имя, возраст, страна, город и клуб бегуна, номер и занятое им место, принадлежность к возрастной группе, результат на финише (официальный и личный), а также информацию о дате и погоде в день мероприятия.

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

Тренажёр ПДД
В базе данных результатов тестирования на знание правил ПДД есть таблица ответов и таблица со статистикой по билетам. Таблица ответов содержит поля: ID пользователя, ID вопроса, результат (верный или неверный ответ), дата и время, сам ответ и др. Таблица билетов содержит: ID пользователя, ID билета, сдал/не сдал, количество верных ответов, дата и время, тип тестирования, потраченное на билет время (в секундах).

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

Рейтинг школ
В сводной таблице по школам Москвы указаны: название и номер школы, количество учеников, список средних баллов на выпускных экзаменах и ЕГЭ по разным предметам, доли поступлений в ведущие ВУЗы.

В реальности данных выпускники сдают экзамены и ЕГЭ по разным предметам в разных школах Москвы, с разными результатами и поступают в разные ВУЗы.

Важное дополнение: текстовое описание не есть реальность данных, а только удобный способ её зафиксировать. За текстовым описанием всегда стоит многомерная живая картина, описанная в предыдущей заметке.

Описать реальность данных — первый шаг к качественной визуализации. О втором шаге, грамотной постановке задаче, я расскажу в следующей заметке. Если хотите освоить алгоритм работы со сложными данными на практике, приходите на брейнвошинг по визуализации данных, который я проведу в Москве, 23 и 24 апреля.

Следующая теоретическая заметка выйдет 28 марта.

Ctrl + ↓ Ранее