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

У Кати, одного из участников курса, был вопрос — как сделать «лолипоп» чарт 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 для подсчета разницы между точками.

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

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

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

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

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

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

Поделиться
Отправить
Запинить
Популярное