Data Densification - what is it?
Table of contents
Повышение плотности данных
Одной из более сложных тем в Tableau является "Увеличение плотности данных". Как и многое другое в Tableau, мы основываемся на работах других людей, поэтому, прежде чем начать, стоит отметить двух людей, которые первыми применили эти приемы. Авторы: Джо Мако и Джонатан Драмми.
Проблема
Давайте начнем с разбора случаев, в которых применима техника "Уплотнения данных". Ниже приведены два примера разреженных данных. Первый показывает категории, но для некоторых из них отсутствуют меры. Во втором примере показана дата по значению, но обратите внимание, что даты отсутствуют, представлены данные только за четыре непоследовательных дня в марте 2019 года. Это примеры разрозненных данных.
Чтобы продолжить дальше, то прежде всего давайте начнем с нескольких определений.
Определения
- Data Densification (англ. Плотность данных) - общий термин, охватывающий все ситуации, при которых в Tableau добавляются маркеры (Marks) для возможных комбинаций значений измерений (Dimension).
- Domain Completion (англ. Завершение измерения) - маркеры (Marks) добавляются для потенциальных комбинаций значений измерения.
- Domain Padding - для потенциальных значений в диапазоне пилюли Range Aware добавляются маркеры.
- Sparse Data (англ. Данные с разрывом) - данные, в которых не все потенциальные комбинации значений Dimension существуют в данных, возвращаемых из источника данных.
- Range Aware Pill (англ. Пилюля с ожидаемым диапазоном)- пилюля измерения с типом поля данных: Дата, Время или Bin. Исключение составляет Точное время, установленное на точную дату. Противоположные полки - Полки для строк и столбов являются противопоставляемыми полками.
Способы повышения плотности данных:
- Domain Padding - инициируется с помощью опции Show missing values от пилюли Range Aware.
- Domain Completion - инициируется 2мя или более пилюлями для определения размеров.
Domain Padding
На примере ниже приведены дни месяца, DAY (Order Date), в столбцах. Это Range Aware Pill (Измерение таблетки с полем данных типа либо Дата, либо Время или Бин). Мы можем использовать Domain Padding для заполнения этих значений. Для этого щелкните правой кнопкой мыши на размерной таблетке и выберите "Show Missing Values".
Обратите внимание, что Tableau будет уплотнять данные только внутри диапазона. Таким образом, если диапазон DAY (Order Date) содержит реальные данные с 2го по 20е число, то после включения опции "Show Missing Values" не стоит ожидать появления 1го числа и дат выше 20го числа.
Это было легко, да? Полагаю, что сложнее понять, чем реально применить эти шаги. Простое вычисление или один щелчок опции может включить уплотнение данных.
Domain Completion
В примере ниже, у части категории отсутствуют значения, в этом случае необходимо использовать Domain Completion, чтобы заполнить эти значения. Используйте такое вычисление, как INDEX(), чтобы включить функцию Densification (Расширение данных). Обратите внимание, что "abc" показывает только то, где есть значения, но после добавления INDEX мы видим "abc" в каждой ячейке.
Уверен, уже на данном этапе понятна суть техники и границы практического применения. Однако, чтобы закрепить полученные теоретические навыки рассмотрим реальный пример, в котором на визуализации Highlight Table заполним 0% там, где нет данных в таблице. Для этого в качестве источника будем использовать встроенные данные Superstore.
Шаги для подготовки примера:
- Дважды щелкните Order Date (Дата заказа), чтобы добавить поле в столбцы.
- Щелкните правой кнопкой мыши на Order Date (Дата заказа) и измените гранулярность на Month (Дата заказа), выбрав первый месяц в списке.
- Дважды щелкните Customer Name (Имя клиента), чтобы добавить поле в строки.
- Дважды щелкните Profit Ratio (Коэффициент прибыли), чтобы добавить поле в Label (Текст) на карточке Marks.
- Дополнительно перетащите Profit Ratio (Коэффициент прибыли) в Color (Цвет) на карточке Marks.
- Измените тип визуализации с Automatic на Square, щелкнув на выпадающем списке карточки Marks.
- Перетащите Order Date (Дата заказа) в "Фильтры" и выберите "2017", чтобы отфильтровать только 2017 год.
- Перетащите Profit Ratio (Коэффициент прибыли) в "Фильтры" и выберите диапазон от -0.5 до 0.5
- Дважды щелкните цветовую легенду и выберите палитру "SIBUR Red-Gray-Green Sequential" в выпадающем меню и нажмите OK.
Визуализация Highlight Table готова. Обратите внимание на недостающие данные в этой таблице.
Это отличный пример, потому что он имеет два противоположных измерения в столбцах и строках, и одно из них - пилюля с ожидаемым диапазоном. Это означает, что можно использовать либо Domain Completion, либо Domain Padding, чтобы заполнить недостающие значения в этой визуализации, без необходимости объединения с суррогатными данными и справочниками. Помните, что цель состоит в том, чтобы заполнить "0%" для пустых значений, где нет данных.
Давайте начнем с заполнения домена, которое реализуется в два шага.
Во-первых, щелкните правой кнопкой мыши на Range Aware Pill, в данном случае это MONTH(Order Date), и выберите "Show Missing Values" (Показать отсутствующие значения). Это включит уплотнение данных.
Чтобы присвоить конкретное значение, например, "0%", которое необходимо показать в визуализации, щелкаем правой кнопкой мыши на мере, которая находится в таблице (в данном случае Profit Ratio в карточке Marks) и выбираем Format. В меню форматирования установите значение "Special Values (eg, NULL)" равным 0% (или иное значение или текст, который хотите отобразить в пустых ячейках, будет работать и текст типа "NONE" или "NULL"). При установке цвета в "SIBUR Red-Gray-Green Sequential" 0% будет серого цвета, а значения, которые не пустые, будут показывать значение цветом. Теперь у вас должна быть таблица подсветки, как показано ниже.
За два шага добились искомого формата таблицы. Теперь давайте сделаем аналогично, используя Domain Completion. Придется отменить шаги, которые только что были сделаны, чтобы включить Domain Padding. Воспользуйтесь кнопкой назад, чтобы вернуться к исходной визуализации.
Решение с помощью Domain Completion - это тоже процесс из двух шагов, при этом форматирование идентично. Так что разница только в том, как включить "Повышение плотности данных ". Для этого дважды щелкните белую область в нижней части карты меток для ввода формулы в строке. Введите INDEX() и нажмите Enter.
Теперь повторите шаг форматирования, щелкните правой кнопкой мыши на меру, которая находится в таблице (Profit Ratio on the Marks Card Text) и выберите Формат. В меню "Форматирование" установите значение "Special Values (eg, NULL)" равным 0% (или иное другое значение или текст, который требуется отобразить в пустых ячейках). Теперь у вас должна быть выделенная таблица, как показано ниже, и тот же результат форматирования, что и раньше.
Книга для повторения Data Densification starter.twbx
Резюме
Как я уже упоминал, это отличный пример, потому что мы можем включить функцию "Повышение плотности данных" с помощью Domain Padding (с помощью Range Aware Pill) или Domain Completion (с помощью функции INDEX() с противоположными полками). Оба варианта решают проблему и создают желаемый результат.
Приятного обучения.