Radial pie в Tableau
⏱ Время чтения текста – 11 минутКак-то раз на просторах YouTube мы нашли вот такое видео с гайдом по Radial Pie в Tableau:
Нам очень понравилась реализация — диаграмма сильно напоминает кольца активности Apple Watch. Но, к сожалению, по задумке графика кольца останавливаются на 270 градусах. Показываем, как сделать максимально приближенную к кольцам активности реализацию.

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

Создадим новое вычисляемое поле и назовем его Path.

Затем перейдём на график. Кликнем правой кнопкой мыши по Path из раздела Measures и создадим из этого поля Bins. Size of bins установим на единицу:

Создадим новое вычисляемое поле Index:

И поле Percentage, которое отобразит, насколько выполнены цели. Если достижение по цели будет больше самой цели, мы отобразим 1, чтобы не появлялись значения больше единицы.

Теперь создаём следующие меры:

wc_start — мера начальной координаты каждого кольца. Она считается по полю Order, соответственно, у Stand Order равен 1, а значит начинаться это кольцо будет раньше всех, в точке 1 по OY. У кольца Exercise Order равен 2, оно будет в середине. У Move Order равен 3 — это кольцо будет внешним и начнётся в точке 3.


percentage_label — мера для Label, в которой записано процентное отношение достижения по цели к самой цели:

Y2 — вспомогательная мера для начальных точек колец:

Наконец, финальные поля X и Y. Если значение меньше 360, мы описываем при помощи синуса внутреннюю линию кольца, если больше — то внешнюю линию, иначе — острие, на котором кончается кольцо. Формула вычисления Y аналогична X, но считаем не синус, а косинус.


Визуализация
Измерение Path (bin) перетянем в поле Detail, X — в Columns, а Y — в Rows. X и Y должны вычисляться при помощи Path:

Тип графика сменим с Automatic на Polygon и перетянем меру Index в поле Path. Поле Description перетягиваем в Color.

Меру Y2 тоже перетягиваем в Rows и устанавливаем для оси Dual Axis. Из All в Marks необходимо удалить Measure Names. Правой кнопкой мыши кликаем на ОY и синхронизируем оси:

Для Y2 устанавливаем тип Circle и корректируем размер:

Работа над оформлением
В Tableau есть возможность самому подобрать нужную гамму. Для жмём на Colors, затем на Edit colors, выбираем нужное поле и указываем цвет. Для гаммы колец из WatchOS мы подобрали такие цвета:
- Красный: rgb(229, 54, 83)
- Зелёный: rgb(186, 252, 79)
- Синий: rgb(117, 229, 228)

В Label Y2 перетягиваем поля Description и percentage_label. Устанавливаем выравнивание, Description выделяем жирным цветом, ставим галочку в Options у поля Allow labels to overlap other marks, чтобы Label был виден:

Скрываем все линии, границы и индикатор, заливаем фон чёрным цветом. Результат — такая диаграмма:

Книга и таблица из примера доступны в нашем репозитории на GitHub.