Блог Ромы Бунина

о визуализации данных и работе с Tableau

Gartner BI Magic Quadrant

Каждый год аналитическое агенство Gartner публикует отчеты о развитии разных направлений IT. Меня всегда бесило, что чтобы сравнить год к году надо открывать кучу картинок. Моя интерактивная вариация про квадрант в области BI:

7 апреля   пример

Консультации от Лаборатории данных

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

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

Услуга, на мой взгляд, будет полезна двум категориям:
— Арт-директору/руководителю продукта/дизайнеру сложного продукта с большим количеством данных, когда вы хотите получить новую идею о том, как классно показать эти данные, чтобы это решало задачу пользователей.
— Руководителю службы инфографики или журналисту данных, которые делают лонгрид или большую инфографику для получения новых идей.

Будет бесполезно тем, у кого мало данных (2-4 разреза данных с простой структурой и небольшим количеством самих данных) или нужно готовое решение продуктового качества.

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

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

Примеры прототипов
Job digitalisation
Климат в России
Возрастно-половая пирамида
Работы участников конкурса «Один раз увидеть»

Записаться на консультацию можно на сайте лаборатории.

П. С. Понял, что я уже был клиентом Тани в таком формате визуализаций. Так был сделан совет про OEE. А еще в таком же формате велась работа внутри лаборатории. Мы с дизайнерами приходили к Тане, как к артдиру, раз в неделю и получали те самые консультации. Дальше делали прототипы и макеты. Мне результат таких консультаций очень нравился. =)

П. П. С. Еще такой же формат консультаций получают все наши слушатели на курсе, когда делают практическую часть. Курс в мае, следите за анонсами.

1 марта  

Маленькое исследование рынка вакансий Москвы и России

Сделал маленькое исследование рынка вакансий Москвы и России. Взял интересные мне профессии и скилы. Данные с hh.ru и моего небольшого инструмента, там данные тоже с hh.
Если хотите чтобы добавил какие-то профессии — пишите. =)

https://public.tableau.com/views/_21975/sheet1

Оцифровка профессий в США

Кирилл Беляев в своём телеграмм-канале разобрал визуализацию про проникновение IT и  автоматизации в профессии. Я помогал ему обсуждениями и разработкой прототипа.

Вот, что получилось. На картинке финальный макет, которые сверстал Кирилл, а по ссылке прототип в Табло.

http://revealthedata.com/examples/job-digitalisation/

Как сделать контрол для переключения день/неделя/месяц в Табло

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

Создаем параметр, которым будет управлять пользователь. Правой кнопкой на панели с данными, затем create parameter.

Потом создаем расчетное поле:

DATE(
CASE [Date range]
WHEN "Day" THEN DATETRUNC('day', [Date])
WHEN "Week" THEN DATETRUNC('week', [Date])
WHEN "Month" THEN DATETRUNC('month', [Date])
END
)

Здесь вся фишка в том, что оборачиваем весь CASE в DATE, иначе Табло не будет воспринимать результат как дату, и используем DATETRUNC, чтобы выбрать уровень агрегации.

Подставляем получившиеся поле в нужное нам место и теперь можем управлять датой:

Ecли вы читаете мой блог и у вам есть вопросы по Табло — пишите на buninra@mail.ru. Если у меня будет время, то отвечу в блоге или скину полезную ссылку по вопросу.

Разделение на квантили в Табло

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

Для примера взял данные о частоте слов в английском языке. В наборе данных — слова и частота их возникновения. Для того, чтобы построить «облако слов» расположим слова на текст, частоту на размер, выберем в качестве визуального атома (makrs) слова.

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

RUNNING_SUM(SUM([Frequency])/TOTAL(SUM([Frequency])))

Автоматическим инструментом bins для разбиения на квантили использовать не получится, так как это table calc. Поэтому создадим разбивку в ручную, ещё через одно расчетное поле.

IF [Runnig % of total] >=0 AND [Runnig % of total] <0.25
THEN "0-25%"
ELSEIF  [Runnig % of total] >= 0.25 AND [Runnig % of total] <0.5
THEN "25-50%"
ELSEIF [Runnig % of total] >= 0.5 AND [Runnig % of total] <0.75
THEN "50-75%"
ELSE "75-100%"
END

Кинем получившееся поле на цвет.

Получилась фигня, так как Табло не знает как отсортировать наши слова при расчете накопительного процента. Чтобы это исправить скажем ему как отсортировать слова. Для этого зайдем в редактор table calc и зададим сортировку:

Вуаля:

Добавил Парето и залил на Табло Паблик. Там можно скачать книгу и посмотреть как что реализовано.

https://public.tableau.com/views/Wordfreqineng/Wordfreqineng?:embed=y&:display_count=yes&publish=yes

55 работ участников «Один раз увидеть»

В том году закончился конкурс ОРУ (один раз увидеть). Спасибо организаторам и все участникам, было круто. Вот разбор работ и моя последняя работа. Делал её из отпуска на коленке, но считаю, что самая это моя самая сильная работа из всего конкурса. Не успел только картинки пожать, чтобы быстрее грузилось. В во время реализации узнал про «новую» фишку размеров в css c помощью vw и vh. Очень удобно и полезно для адаптивности визуализаций и приложений в вебе.

Лолипоп чарт с осью времени в Табло

У Кати, одного из участников курса, был вопрос — как сделать «лолипоп» чарт c временем по оси икс.

Что хотелось получить в итоге

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

Данные хранились в CSV, когда открываешь их в Табло получается фигня:

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

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

Кстати, сначала пошёл исправлять такое через Экслеь, но это не сработало. Эксель неправильно кушает эти данные из-за наличия запятых в предсмертной речи.

В этой таблице даты хранятся в широком формате. Это не удобно, исправляем формат на длинный:

Подробнее про длинный и широкий формат в этой статье.

После функции pivot наши даты разместились в двух столбцах с названиями Pivot Filed Values и Pivot Filed Names:

В Values хранятся значения дат, а в Names — тип даты (дата рождения, обвинения, взятия под страду и дата смертной казни). Переназовём поля в Date и Date type:

Такой формат данных очень удобен для табло. Но теперь задваиваются (точнее зачетвиряются =) ) строки:

Тогда когда мы будем подсчитывать кол-во смертников, складывать сумму лет проведенных в тюрьме и т. п. мы будем получать неверный результат. Чтобы этого избежать можно продублировать источник (надо было сделать заранее) и в одном источнике сделать pivot, а в другом нет. Тогда источник с pivot будем использовать только для визуализации lolipop, а другие для других графиков. Делается, например, здесь:

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

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

Чтобы «закрасить» растояние между точками, создадим расчетное поле дублирующие даты и изменим ему тип данных на число с запятой. Это нужно чтобы мы потом могли применить к этому числу Quick Table Calculation, для дат его применять нельзя. Ещё надо перетащить копию дату в Measures.

Создадим ещё одну ось с датой и объединим её с предыдущей через dual axis:

Не забудем синхронизировать оси:

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

Добавим быстрое Quick Table Calculation для подсчета разницы между точками.

Теперь настроим этот расчет:

Сделаем так, чтобы Табло рассчитывал разницу к предыдущей точке по дате для каждого типа даты:

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

Чтобы это исправить добавим в расчетное поле минус.

Вуаля! Подстроим размеры ганчарта и готово.

На таком графике сразу видно много интересного:

Население России с 1926 по 2017 год

Александр Богачев и Андрей Дорожный, которые ведут в телеграмме каналы «Чартомойка» и «Дата публикации» организовали аналог Makeover Monday, ну или придумали сами. В любом варианте это очень интересный конкурс для датагиков и журналистов данных — спасибо!
Вот примеры работ с прошлой недели про моего любимого Дудя.

Тоже решил поучаствовать. Сделал небольшую визуализацию:

А ещё у нас в декабре курс по визуализации. Таня расскажет про теорию, я про Табло, а Дима Семьюшкин про d3.js.

Ранее Ctrl + ↓