Данные
Начинаем с загрузки источника данных Sample Superstore в Tableau Desktop/ Tableau Public: https://files.tableaumagic.com/Orders.csv
После того, как данные загружены в Tableau, кликаем правой кнопкой мыши на источник данных и выбираем Edit Data Source … когда откроется редактор Data Source, необходимо вставить следующее:
Path 1 2 3 4
Мы получаем ошибку (что ожидаемо, так как в таблицах нет общих колонок для джойна). Далее нажимаем «Add new join clause» , переходим к «Create Join Calculation» , вводим в редакторе формул значение 1 и кликаем «ОК». Нужно проделать те же самые действия и для правой таблицы в джойне. Необходимо убедиться, что выбрано Inner join.
Должно получиться так:

Вычисляемые поля
С нашим набором данных, загруженным в Tableau, необходимо создать следующий параметр и вычисляемые поля:
Параметр Year:
- Установить Name как Year Parameter
- Установить Data type как Integer
- Установить Allowable values в виде List со следующими значениями:
—2016
—2017
—2018 - Установить Current value на 2018
Параметр Y Adjustment:
- Установить Name как Y Adjustment
- Установить Data type как Float
- Установить Current value на 0,1
Sales Value (Selected) / Объем продаж (текущий период)
SUM(IF YEAR([Order Date]) = [Year Parameter] THEN [Sales] END)
Sales Rank (Selected) / Рейтинг продаж (текущий период)
RANK_UNIQUE([Sales Value (Selected)])
Sales Value (Previous) / Объем продаж (предыдущий период)
SUM(IF YEAR([Order Date]) = [Year Parameter]-1 THEN [Sales] END)
Sales Rank (Previous) / Рейтинг продаж (предыдущий)
RANK_UNIQUE([Sales Value (Previous)])
X Adjustment
IF [Sales Rank (Selected)] = [Sales Rank (Previous)] THEN 0 ELSE [Sales Rank (Selected)]/20 END
X
IF WINDOW_MAX(MAX([Path])) = 1 OR WINDOW_MAX(MAX([Path])) = 4 THEN 0 ELSE IF [Sales Rank (Selected)] = [Sales Rank (Previous)] THEN 0 ELSEIF [Sales Rank (Selected)] > [Sales Rank (Previous)] THEN [Sales Rank (Selected)]-[Sales Rank (Previous)] ELSE -([Sales Rank (Previous)]-[Sales Rank (Selected)]) END END
Y
IF WINDOW_MAX(MAX([Path])) = 1 OR WINDOW_MAX(MAX([Path])) = 2 THEN [Sales Rank (Previous)] ELSE [Sales Rank (Selected)] END
Zero
0
Готово, приступим к созданию визуализации данных.
Рабочий лист
- Меняем тип метки Mark на Line
- Перетаскиваем Sub-Category на метку Detail
- Перетаскиваем Path на метку Path
—Кликаем правой кнопкой мыши на эту пилюлю и переходим в Dimension - Перетаскиваем Y на полку колонок Columns Shelf
—Кликаем правой кнопкой мыши на эту пилюлю, переходим к Compute Using и выбираем Sub-Category - Перетаскиваем X на полку рядов Rows Shelf
—Кликаем правой кнопкой мыши на эту пилюлю, переходим к Compute Using и выбираем Sub-Category
Должно получиться так:

Наводим красоту:
- Ctrl (или Command) перетаскиваем X (для дублирования) с полки рядов Rows Shelf на Colour Shelf
—Кликаем на метку Colour и меняем (reverse) цвет - Ctrl (или Command) перетаскиваем Path из метки Path на метку Size
- Перетаскиваем Zero на полку рядов Rows Shelf
—Кликаем правой кнопкой мыши на эту пилюлю и выбираем Dual Axis - На панели SUM(Zero) Marks
—Меняем тип метки Mark Type на Circle
—Удаляем все пилюли кроме Sub-Category
—Кликаем правой кнопкой мыши на заголовок Zero Axis и выбираем Synchronize Axis.
Должно получиться так:

Последние штрихи в нашей визуализации:
Изменяем вычисляемое поле X на:
IF WINDOW_MAX(MAX([Path])) = 1 OR WINDOW_MAX(MAX([Path])) = 4 THEN 0 ELSE IF [Sales Rank (Selected)] = [Sales Rank (Previous)] THEN 0 ELSEIF [Sales Rank (Selected)] > [Sales Rank (Previous)] THEN [Sales Rank (Selected)]-[Sales Rank (Previous)]+[X Adjustment] ELSE -([Sales Rank (Previous)]-[Sales Rank (Selected)])-[X Adjustment] END END
Мы добавили «+» или « – » для параметра X Adjustment.
Изменяем вычисляемое поле Y на:
IF WINDOW_MAX(MAX([Path])) = 1 OR WINDOW_MAX(MAX([Path])) = 2 THEN [Sales Rank (Previous)] +IIF([Sales Rank (Selected)]=[Sales Rank (Previous)], 0,[Y Adjustment]) ELSE [Sales Rank (Selected)] -IIF([Sales Rank (Selected)]=[Sales Rank (Previous)], 0,[Y Adjustment]) END
Мы добавили вычисление для включения параметра Y Adjustment
Должно получиться так:

Последние штрихи в нашей визуализации:
- Скроем заголовки осей X и Y
- Скроем линии сетки Grid Lines
- Перетаскиваем Sales Rank (Selected) на Label из (SUM(Zero) Label; изменяем цвет на белый с темной каймой
- Добавляем подсказки Tooltips
Должно получиться так:

Вот и все!