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

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

Алгоритм Δλ: реальность данных и каркас визуализации

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

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

Временная ось, вдоль которой раскрываются траты из личного бюджета:

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

Ландшафт может быть многомерным, тогда нужно придумать, как его свернуть в плоскую картину. Например, схема маршрута и временной слайдер на визуализации Московского марафона:

Схема линии и временные интервалы на диаграмме загруженности Московского метро:

Результаты забега на стометровке — время финиша трансформировано в отставание (в метрах) от последнего мирового рекорда:

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

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

Траты личного бюджета можно перегруппировать по категориям или по времени суток/дню недели:

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

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

И из распределения частиц данных вдоль разных осей:

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

Может быть дополнена сводными данными, усреднёнными по городам и показаными на одном графике:

И диаграммой среднестатистических недель по городам:

Объединим эти каркасы с помощью интерактивной связи в одну визуализацию и увидим множество срезов данных как на ладони:

Другие примеры комбинированных каркасов. Таймлайн + карта:

Карта + хитмеп:

Несколько однотипных графиков:

И даже последовательности однотипных графиков:

http://www.nytimes.com/interactive/2012/11/30/us/tax-burden.html?_r=0 http://www.nytimes.com/interactive/2012/11/30/us/tax-burden.html?_r=0

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

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

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

Алгоритм Δλ: каркас визуализации и виды осей

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

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

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

С непрерывными осями мы знакомимся в школе, когда строим параболы:

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

График из двух непрерывных осей с точками-объектами:

Иногда на осях отмечают средние значения, и график делится на осмысленные квадранты («дорогие результативные игроки», «дешёвые результативные» и т. д.):

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

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

Оси пространства и времени
Важный частный случай непрерывных осей — оси пространства и времени, например, географическая координата или линия времени.

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

Основой визуализации бывает одна непрерывная пространственная ось, например, погружение вглубь океана, в недра Земли или подъем в высоту:

Ещё один пример логарифмической оси

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

И с успехом применяются до сих пор:

Ещё один способ показать временное измерение — дополнить пространственную картину слайдером:

В исключительных случаях пространство и время получается совместить на плоской карте или вдоль одной оси:

Карта наступления Наполеона на Москву в 1812 году

Диаграмма экспедиций Амундсена и Скотта

Интервальная ось
Интервальная ось разделена на отрезки (равные или неравные), которым ставится в соответствие значение параметра по определённым правилам. Интервальная ось подходит как для качественных, так и для количественных параметров.

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

Название штата — чисто качественный параметр, каждому штату соответствует один шаг по вертикали. Год — непрерывное временное измерение, редуцированное до годовых интервалов. Каждому году соответствует один шаг по горизонтали.

Интервальные оси с мелким шагом (дни года по горизонтали, часы суток по вертикали) дают очень подробную, почти «непрерывную» картину:

Две интервальные оси не обязаны превращаться в хитмеп:

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

Другой пример комбинации интервальной и непрерывной осей — диаграмма найма «Хантфлоу». По горизонтали отложены этапы собеседования (качественный параметр), по вертикали — количество кандидатов на этапе:

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

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

В комиксе о высоте Вселенной горизонтальное измерение также вырожденное.

Данные формата «было-стало» чаще всего требуют вырожденной оси:

Но она не обязательно «съедает» экранное измерение:

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

Равномерная сетка
Ещё один способ использовать пространство экрана — заполненить его последовательными блоками по сетке. Объекты внутри сетки упорядочены линейно, например, по алфавиту:

По размеру города:

Или по номеру билета:

Сетка подстраивается под размер экрана и не имеет ярко выраженной горизонтальной и вертикальной направляющих.

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

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

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

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

Алгоритм Δλ: ответы на вопросы

Вопросы из залы разделю на три группы: об элементарных частицах, о каркасе и общие вопросы по алгоритму.

Элементарные частицы и визуальные атомы
Спрашивает Юлия Торгашова:

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

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

Поиск элементарной частицы начинайте снизу вверх: ищите разные потенциальные частицы и примеряйте их к данным. «Деньги?» — хорошее начало, единица измерения бюджета, рубль, но слишком универсальная. Подойдёт, если не найдём чего-то более характерного для городского бюджет. «Мероприятия» не подходят, потому что не все бюджетные траты связаны с мероприятиями, есть и другие расходы, а элементарная частица должна описать всю массу данных. «Учреждения?» — с одной стороны, да, все бюджетные деньги можно разбить на отчисления тому или иному бюджетному учреждению. С другой стороны, это уже слишком крупная единица, ведь внутри учреждения может быть несколько транзакций, в том числе периодических. Если мы возьмём учреждение в качестве элементарной частицы, то будем оперировать только общим бюджетом этого учреждение и потеряем временной срез, а также возможный срез по целевому назначению средств.

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

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

Спрашивает Иван Печищев:

Как соотносятся визуальная частица и частица данных? Может ли у одной частицы данных несколько воплощений в визуальных частицах? Скорее всего, да. Как они соотносятся?

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

Визуальный атом — это воплощение частицы данных на экране. Одна частица данных может выражаться разными атомами. Например, путь кандидата на диаграмме «Хантфлоу» показан линией:

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

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

Спрашивает Антон:

Я сломался после столбиковых диаграмм. Там начинается какой-то ад. Диаграмму с детскими садами вообще не понял — кажется, она прямо противоречит написанному. Либо я тупой, либо эти атомы лучше использовать с большой осторожностью :—)

В статье речь не о формате «столбиковая диаграмма», а о прямоугольнике, как способе представления данных. У прямоугольника два линейных измерения + площадь, их производная + цвет. Прямоугольники состоят из пикселей.

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

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

Закрашенные столбики на диаграмме — и есть прямоугольники, попавших в сад детей разных возрастов. Можно сравнить не только доступность садов для разных групп (ширину), но и количество детей попавших/не попавших в сад (площадь). Цветовое кодирование дублирует доступность, привлекая внимание к проблемам — крупным ярким пятнам.

Ландшафт и каркас
Спрашивает Денис Балуев:

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

Спрашивает Иван Печищев:

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

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

Общие вопросы по алгоритму
Комментирует Михаил Калыгин (привожу только вопросы):

У алгоритма есть жестко заданный выход — определенного вида ответы на интересующие нас вопросы по задаче, решение задачи. В зависимости от подхода к решению вход алгоритма может быть разным. С чего здесь начинать? Какие данные нам нужны для ответа? Как определять формат этих данных? Что делать, если данных нет?

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

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

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

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

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

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

Эти данные мы и будем визуализировать. Таким образом на визуализации окажется максимально полезный из всех доступных слепок с реальности данных, а не разрозненный набор параметров.

Поясню на своём любимом примере — визуализации Московского марафона. На входе у нас финишные протоколы: имя, пол и возраст участника, номер, время финиша. В реальности данных толпа бегунов, каждый со своей скоростью преодолевает марафонскую дистанцию по улицам Москвы под палящим солнцем или в дождь. Мы хотим показать процесс, как бегут люди, идеальным будет набор данных с положением каждого бегуна, его скоростью, пульсом на всём протяжении забега, изменением высоты трассы и поминутно меняющейся погодой. Подробных данных о бегунах у нас нет и в ближайшее время не будет. Есть время финиша и прохождения 3-4 промежуточных точек на дистанции. По этим точкам можно аппроксимировать положение бегунов, пишем формулы, получаем координаты и скорость бегунов в каждый момент времени. Мы допускаем такую аппроксимацию, так как на больших отрезках марафонской дистанции движение плюс-минус равномерное, то есть порядок бегунов на трассе, за редким исключением, будет рассчитан правильно. Высоту подтягиваем с картографического сервиса, погоду и ветер берём из открытых источников. Собрав все эти данные воедино, начинаем колдовать над визуализацией.

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

Как и обещала, три самых вдумчивых комментатора: Иван Печищев, Юлия Торгашова и Михаил Калыгин — получают скидку 5 тыс. руб. на осенний курс по визуализации данных. Огромное спасибо всем, кто отозвался!

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

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

Алгоритм визуализации, который я описываю, рождается на ходу. Я начала писать теоретические заметки в феврале, не подозревая, куда этот процесс меня приведёт. С тех пор появилось 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 стало по-настоящему простым и доступным даже для «совсем новичков». Правда, опытным программистам не хватило сложных примеров и было скучновато. Постараемся это исправить на следующем курсе.

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

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

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

Ctrl + ↓ Ранее