АНАЛИТИКА ПЛЮС
Профессиональные услуги в сфере BI

Tableau: деревья решений, потоковые диаграммы и диаграммы Санкей — строим быстро!

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

Мы построим следующее дерево:
• Level 0: Точка отсчета
• Level 1: Приоритет заказов
• Level 2: Способ доставки
• Level 3: Продуктовый контейнер

Результат будет выглядеть следующим образом:

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

  • Аналитический разрез, который будет использован на Уровнях 1,2 и 3
  • Дата фильтруется по году
  • С помощью индикатора можно определять размер потока
  • Цвет потока можно привязать к другому индикатору
  • Тултип отображает детальную информацию

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

Подготовка данных

Для начала построим датасет. Будем использовать датасет Superstore, который сблендим с полигональным датасетом (полигональный датасет мы тоже подготовим! — см. приложение в конце статьи).

Результат этих действий показан ниже. В нем удалены все неиспользующиеся данные и добавлена колонка «Link» в таблице данных Superstore.

Логика решения

Для лучшего понимая логики сначала построим диаграмму в MS Powerpoint:

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

Для построения этой логики в Tableau необходимо определить положение аналитического разреза на разных уровнях на визуализации, т.е. координаты (х,у). Декомпозируем аналитический разрез на 3 шага A, B и C. Уровни будут определять X-координату иерархии, Y-координате будет отвечать ранг Уровня для отображения соответсвующего потока.

В данном методе, X-координата определяется нашей полигональной моделью, построенные кривые будут соответствовать уровням A, B и C.

По сути, Уровень 3 должен описывать ранг каждого отдельного продуктового контейнера для определенного способа доставки и определенного приоритета доставки. Можно представить это следующим образом:

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

Задача

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

Решение

Функция INDEX и использование расчетов (Advanced Table Calculations).
INDEX определит ранг, а расчеты – уровни группировки кривых.

Для лучшего понимания построим 4 показателя:
Index 0 = INDEX() расчитанный для Level 0, Level 1, Level 2, Level 3 на уровне «Level 0». Level 0 является начальной точкой отсчета всего датасета. Создаем расчетное поле «Level 0», являющееся «Стартом». Это позволит создать визуализацию, начинающуюся с одной точки не зависимо от других уровней.

Для этого создаем новое расчетное поле:

  1. Назовем его Index 0
  2. Используем функцию INDEX()
  3. Нажмем «Default Table Calculation» в правой верхней части окна создания расчетного поля. В поле «Compute using» выберем «advanced…» и построим адресацию следующим образом:
    Level 0 > Level 1 > Level 2 > Level 3 (обязательно использовать именно такой порядок!)

Нажимаем «ОК» и выбираем Level 0 в выпадающем меню «At the level». Повторно нажимаем «ОК».

Повторяем данную последовательность действий для Индексов 1, 2 и 3. Единственное отличие заключается в определении расчетов для Level 1, 2 и 3.

Построив таблицу по этой информации, должно получиться следующее:

Тем самым определено правильное ранжирование элементов на каждом уровне иерархии.

Теперь построим распределение этих точек для определения оси Y на визуализации. Для этого необходима калибровка, которая позволит вместить такой же объем данных для того, чтобы кривые разделялись вместо того, чтоб получился «водопад». Наиболее простым способом является ранжирование от 0 до 1.

Определим позиции:
Position N :
INDEX()/(SIZE()+1)
Расчет производится по Level 0, Level 1, Level 2, Level 3 на Level N.

  • INDEX отвечает за ранжирование
  • SIZE определяет количество уникальных Index в разбиении
  • +1 для правильного распределения точек от 0 до 1

Для нашего примера:

  • Иерархия: Critical / Delivery Truck / Jumbo Drum
  • Index для Level 3 будет равен 2.
  • Положение 3 будет равно 2/(12+1) = 2/13

После этого можно построить визуализацию используя тот же метод, который использовался для построения полигональной диаграммы Санкей (см. https://community.tableau.com/thread/152115).

Теперь можем построить кривые A, B и C и финальную визуализацию (на дэшборде либо на отдельном листе).

Важно:
в Tableau использование расчетов (Table Calculations) может потребовать обновления «плашек» индикаторов на визуализации. Если не получается построить нужную визуализацию, просто перетащите и замените «плашки» индикаторов на визуализцию для обновления отображения.

Сделаем визуализацию полигональной

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

  • Размер: SUM([Choose Indicator]) / TOTAL(SUM([Choose Indicator]))
    Расчитать для Level 0, Level 1, Level 2 и Level 3
  • Положение N Max : [Position N] + RUNNING_SUM([Size])
  • Положение N Min : [Position N Max] — ([Size])

Такой подход позволит распределить данные на оси от 0 до 2.

В остальном все повторяет построение диаграммы Санкей (санки-чарта).

 

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

Источник: tableau.com
Перевод: Филипп Савенков, Technology Strategy, Senior Consultant

Файлы в помощь:

x

Этот сайт использует файлы cookies, чтобы облегчить вам пользование нашим веб-сайтом.

Продолжая использовать этот веб-сайт, вы даете согласие на использование файлов cookies.