Визуализации Redash
Когортные визуализации
Введение в когорты
Когортный анализ изучает результаты деятельности заранее определенных групп, называемых когортами, по мере прохождения ими определенного этапа. Характерной особенностью когортного графика является сравнение изменения переменной в двух различных временных рядах. Например, распространенным определением когорты является определение пользователей по периоду регистрации и их использования по дням. Другие примеры включают:
- Eжемесячная статистика отказов жестких дисков по месяцам
- Еженедельная статистика поставок поставщикам с разбивкой по неделям
- Среднемесячный средний балл успеваемости по классам с разбивкой по месяцам.
Хотя существует множество способов определения этапов когортного анализа, Redash's поддерживает визуализацию когорт с ежедневными, еженедельными или ежемесячными этапами. Кроме того, диаграммы когорт Redash's сравнивают показатели когорты за определенный период с начальным размером популяции этой группы.
Формат данных
Redash ожидает, что ваши входные образцы будут иметь следующий формат:
|
Cohort Date |
Period |
Count Satisfying Target |
Total Cohort Size |
- Cohort Date - это дата, которая однозначно идентифицирует когорту. Предположим, что вы визуализируете ежемесячную активность пользователей по дате регистрации, ваша когортная дата для всех пользователей, зарегистрировавшихся в январе 2018 года, будет 1 января 2018 года. Дата когорты для любого пользователя, зарегистрировавшегося в феврале, будет 1 февраля 2018 года.
- Period - это подсчет количества периодов, прошедших с даты когорты в данной выборке. Если вы группируете пользователей по месяцам регистрации, то период будет равен количеству месяцев, прошедших с момента регистрации этих пользователей. В приведенном выше примере измерение активности в июле для пользователей, зарегистрировавшихся в январе, даст значение периода, равное 7, поскольку с января по июль прошло семь периодов.
- Count Satisfying Target - это фактическое измерение эффективности данной когорты за данный период. В приведенном выше примере, если тридцать пользователей, зарегистрировавшихся в январе, проявили активность в июле, то целевое значение Count Satisfying Target будет равно 30.
- Total Cohort Size - это знаменатель, который Redash будет использовать для расчета процента целевой удовлетворенности когорты за определенный период. Продолжая приведенный выше пример, если в январе зарегистрировались 72 пользователя, то общий размер когорты будет равен 72. При визуализации Redash отобразит значение 41,67% (30 ÷ 72).
Примечания к датам когорты
Даже если вы определяете когорты по месяцам или неделям, Redash ожидает, что значения в столбце Cohort Date будут представлять собой полную дату. Если вы группируете по месяцам, то 2018-01-18 должно быть сокращено до 2018-01-01 или любой другой полной даты января, а не 2018-01.
Из-за ошибки в базовом движке рендеринга визуализатор когорт Redash конвертирует все значения даты и времени в GMT перед рендерингом. Чтобы избежать проблем с визуализацией, следует скорректировать возвращаемые из базы данных значения даты на местное смещение по Гринвичу.
Как создать визуализацию
Создание новой визуализации
После завершения первого выполнения запроса можно добавить визуализацию, нажав кнопку “New Visualization” над таблицей результатов.
Редактирование визуализации
Изменить настройки существующей визуализации можно из экрана редактора запросов. Щелкните по визуализации на панели вкладок, и под каждой визуализацией появится опция Edit Visualization. Щелкнув по ней, можно открыть текущие настройки этой визуализации (тип, ось X, ось Y, группировки и т.д.). Нажмите кнопку "Save", чтобы применить изменения, или "Cancel", чтобы не оставлять следов.
Встраивание визуализаций
Встраивать визуализации Redash очень просто. Просто нажмите кнопку с изображением элипса под любой визуализацией, чтобы показать дополнительные опции, и выберите пункт Embed Elsewhere. В результате появится код <iframe>, который можно вставить в HTML-страницы.
Вставки изображений в формате PNG
Для клиентов SaaS также имеется жесткая ссылка на PNG-изображение вашей визуализации, размещенное на сайте snap.redash.io. Вставка PNG особенно полезна в контекстах, где iframe не работает (например, при работе с GitHub). Если вам нужно, чтобы PNG визуализации содержал заголовок Cache-Control: no-cache, просто добавьте переменную Query String ?no-cache в конец вашей ссылки для встраивания PNG.
Переменные строки запроса для встраиваемых элементов
К URL-адресам встраивания можно добавлять переменные строки запроса:
- ?hide_parameters скрывает любые виджеты выбора параметров
- ?hide_header скрывает фирменный заголовок Redash и заголовок запроса
- ?hide_link скрывает обратную ссылку на Redash
- ?hide_timestamp скрывает временную метку
Загрузка визуализации в виде файла изображения
Для визуализаций графиков можно также загрузить локальный файл изображения. Просто наведите курсор мыши на правую верхнюю область визуализации и щелкните на появившемся значке камеры. На устройство будет загружен файл PNG.
Визуализации диаграмм
Redash объединяет графики, использующие оси X и Y, в тип визуализации Chart, который может принимать восемь различных форм. Поскольку формы похожи, часто можно плавно переключаться между ними, чтобы найти ту, которая лучше всего передает смысл.
Настройка
Ваш запрос должен возвращать как минимум два столбца: один столбец значений для оси X и один столбец значений для оси Y.
После того как запрос вернет нужные столбцы, начните устанавливать значения по осям X и Y. Предварительный просмотр визуализации обновляется мгновенно. Не нужно сохранять визуализацию, чтобы увидеть, как изменение влияет на ее внешний вид. Вкладки в верхней части экрана "Настройки визуализации" позволяют осуществлять более тонкий контроль над остальными элементами диаграммы.
С помощью вкладок Ось X и Ось Y можно изменять диапазоны и метки осей.
Вкладка Series обладает широкими возможностями. Она позволяет изменять псевдонимы данных, поведение z-индекса, назначать трассировку между левой и правой осями Y. Она также позволяет комбинировать различные формы трасс на одном графике, как это показано на графике ниже.
Colors предоставляет возможность выбора цвета для изменения внешнего вида трасс на графиках. Data Labels управляет тем, что появляется при наведении курсора мыши на график.
Группировка
Параметр Group By позволяет генерировать несколько трасс по одним и тем же осям X и Y. Для этого записи группируются в отдельные трассы, а не рисуются одной линией. Почти каждый раз, когда вы видите несколько цветов линии или столбца на диаграмме Redash, это связано с тем, что результаты запроса включали группирующий столбец.
Как показано в приведенном ниже примере, группирующий столбец используется для сортировки пар (x,y).
Использование Group By зачастую проще, чем написание запросов, возвращающих несколько столбцов Y для одного значения X. Следующие два набора данных идентичны.
Складывание
Redash может "складывать" значения по оси Y друг на друга. Это название заимствовано из Stacked Bar Charts, но оно может быть полезно и для диаграмм областей. На приведенном ниже рисунке показаны одни и те же данные без стопки слева и со стопкой справа.
Обратите внимание, что каждое значение оси Y отображается как сумма самого себя и значений оси Y "под" ним.
Вы можете использовать вкладку Series редактора визуализации для управления порядком, в котором складываются трассы. Также можно управлять этим порядком, добавив в запрос оператор ORDER BY. При этом трассы укладываются в том порядке, в котором имена групп появляются в результатах запроса. Сложение доступно только для линейных, столбчатых и площадных диаграмм.
Полосы ошибок
Для некоторых форм графиков Redash может рисовать полосы ошибок вокруг точек данных, используя значения из результата запроса. Для полос погрешностей всегда справедливы несколько моментов:
Полосы ошибок всегда симметричны. Расстояние над и под данной парой (x,y) всегда одинаково.
Ошибки имеют тот же цвет, что и целевая трасса.
Ошибки отображаются для всех трасс или ни для одной. Их нельзя настроить так, чтобы они отображались на одних трассах и не отображались на других.
Значения в столбце ошибок будут отображаться на той же оси, что и соответствующая трасса. Это означает, что значения ошибок должны быть абсолютными. Например, для значений Y, выраженных в сотнях, нельзя использовать ошибки, выраженные в процентах.
Также следует помнить, что ошибки не суммируются при суммировании записей. Для каждой трассы будет показана полоса ошибок. Это можно обойти, предоставляя ненулевые значения ошибок только для тех записей, где ошибка должна отображаться на видном месте. В приведенном выше примере видно, что плоская полоса ошибок отображается в каждой точке трассировки. Но только полосы ошибок трассы Paid имеют какую-либо длину.
Использование форм диаграмм
Каждая форма диаграммы удобна для определенных видов представления. При необходимости можно смешивать и сочетать несколько форм на одном графике.
- Линейные диаграммы (Line) используются почти исключительно для представления изменения одной или нескольких метрик с течением времени.
- Гистограммы (Bar) могут использоваться для представления изменения метрик во времени или для демонстрации пропорциональности, как круговая диаграмма. Гистограммы можно сочетать со стекированием. Поддерживаются также горизонтальные столбчатые диаграммы.
- Площадные диаграммы (Area) часто используются для отображения изменений воронки продаж во времени. Для получения более широкой картины их часто комбинируют со стекированием.
- Круговые диаграммы (Pie) предназначены для отображения пропорциональности между показателями. Они не предназначены для отображения временных рядов данных.
- Диаграммы рассеяния (Scatter) отлично подходят для отображения множества групп точек данных. Под обложкой диаграммы рассеяния выглядят так же, как линейные диаграммы, но без соединительных линий. Диаграмма рассеяния более точна, но менее полезна для данных временных рядов.
- Пузырьковые диаграммы (Bubble) - это диаграммы рассеяния, в которых размер каждой точки отражает соответствующую метрику.
- Визуализация тепловой карты (Heatmap) сочетает в себе особенности гистограмм, складывания и пузырьковых диаграмм. Имеется несколько встроенных цветовых схем. Тепловые карты нельзя группировать, поскольку весь график технически представляет собой одну трассу.
- Коробчатые диаграммы могут автоматически показывать распределение точек данных по сгруппированным категориям. Поддерживаются также горизонтальные диаграммы.
Форматирование осей в визуализациях
Значения по осям X и Y визуализации форматируются с помощью D3. Ниже приведены примеры различных вариантов форматирования.
Числа
Общая форма спецификации числа имеет вид:
[[fill]align][sign][symbol][0][width][,][.precision][~][type]
fill может быть любым символом. О наличии символа заполнения сигнализирует следующий за ним символ выравнивания, который должен быть одним из следующих:
- > - Принудительно выравнивает поле по правому краю в пределах доступного пространства. (Поведение по умолчанию).
- < - Принудительно выравнивает поле по левому краю в пределах доступного пространства.
- ^ - Принудительно центрирует поле в пределах доступного пространства.
- = - как > , но с любым знаком и символом слева от любого дополнения.
sign может быть:
- - - ничего для нуля или положительного значения и знак минус для отрицательного. (Поведение по умолчанию.)
- + - знак плюс для нуля или положительного значения и знак минус для отрицательного.
- ( - ничего для нуля или положительного значения и круглые скобки для отрицательного значения.
- (пробел) — пробел для нуля или положительного значения и знак минус для отрицательного.
symbol может быть:
- $ - применять символы валюты в соответствии с определением локали.
- # - для двоичной, восьмеричной или шестнадцатеричной записи префикс 0b, 0o или 0x, соответственно.
Опция zero (0) включает нулевое заполнение поля; при этом неявно устанавливается значение fill - 0 и align - =. Опция width задает минимальную ширину поля; если она не указана, то ширина будет определяться содержимым. Опция comma (,) позволяет использовать групповой разделитель, например, запятую для тысяч.
В зависимости от типа точность указывает либо на количество цифр, следующих за десятичной точкой (типы f и %), либо на количество значащих цифр (типы _(none), e, g, r, s и p). Если точность не указана, то по умолчанию она равна 6 для всех типов, кроме (none), который по умолчанию равен 12. Точность игнорируется для целочисленных форматов (типы b, o, d, x и X) и символьных данных (тип c).
Опция ~ обрезает несущественные нули в конце всех типов форматов. Чаще всего она используется в сочетании с типами r, e, s и %.
Доступны следующие значения type:
- e - показательная запись.
- f - обозначение с фиксированной точкой.
- g - либо десятичное, либо показательное обозначение, округленное до значащих цифр.
- r - десятичная система счисления, округленная до значащих цифр.
- s - десятичное обозначение с «приставкой СИ» ( k, M, G, …), округленное до значащих цифр.
- % - умножить на 100, а затем десятичную запись со знаком процента.
- p - умножить на 100, округлить до значащих цифр, а затем записать десятичную дробь со знаком процента.
- b - двоичная запись, округленная до целого числа.
- o - восьмеричная запись, округленная до целого числа.
- d - десятичная запись, округленная до целого числа.
- x - шестнадцатеричное представление с использованием строчных букв, округленных до целого числа.
- X - шестнадцатеричное представление с использованием прописных букв, округленных до целых чисел.
- c - символьные данные для текстовой строки.
Тип _ (none) также поддерживается как сокращение для ~g (с точностью по умолчанию 12 вместо 6), а тип n - как сокращение для ,g. Для типов g, n и _ (none) используется десятичная нотация, если результирующая строка будет иметь точность или меньшее количество цифр; в противном случае используется экспоненциальная нотация.
Время
Строка формата времени может содержать следующие директивы:
- %a- сокращенное название дня недели.*
- %A- полное название дня недели.*
- %b- сокращенное название месяца.*
- %B- полное название месяца.*
- %c- местная дата и время, например %x, %X.*
- %d- день месяца, дополненный нулями, в виде десятичного числа [01,31].
- %e- день месяца через пробел в виде десятичного числа [1,31]; эквивалентно %_d.
- %f- микросекунды в виде десятичного числа [000000, 999999].
- %g- ISO 8601 год, основанный на неделе, без столетия в виде десятичного числа [00,99].
- %G- Год в формате ISO 8601, основанный на неделях, со столетием в виде десятичного числа.
- %H- час (24-часовой формат) в виде десятичного числа [00,23].
- %I- час (12-часовой формат) в виде десятичного числа [01,12].
- %j- день года в виде десятичного числа [001,366].
- %m- месяц в виде десятичного числа [01,12].
- %M- минута в виде десятичного числа [00,59].
- %L- миллисекунды в виде десятичного числа [000, 999].
- %p- либо AM, либо PM.*
- %q- квартал года в виде десятичного числа [1,4].
- %Q- миллисекунды с эпохи UNIX.
- %s- секунды с эпохи UNIX.
- %S- секунда как десятичное число [00,61].
- %u- Будние дни недели, начинающиеся по понедельникам (ISO 8601) в виде десятичного числа [1,7].
- %U- Неделя года, начинающаяся с воскресенья, в виде десятичного числа [00,53].
- %V- ISO 8601 неделя года в виде десятичного числа [01, 53].
- %w- День недели, начинающейся с воскресенья, в виде десятичного числа [0,6].
- %W- Неделя года, начинающаяся с понедельника, в виде десятичного числа [00,53].
- %x- местная дата, например %-m/%-d/%Y.*
- %X- местное время, например %-I:%M:%S %p.*
- %y- год без столетия в виде десятичного числа [00,99].
- %Y- год со столетием в виде десятичного числа, например 1999.
- %Z- смещение часового пояса, например -0700, -07:00, -07, или Z.
- %%- буквальный знак процента ( %).
Директивы, отмеченные звездочкой (*), могут зависеть от определения локали.
Сразу за знаком %, обозначающим директиву, может следовать модификатор заполнения:
- 0 - заполнение нулями
- _ - пробел
- - - отключить заполнение
Если модификатор заполнения не указан, значение по умолчанию используется 0 для всех директив, кроме %e, которая по умолчанию равна _.
Форматирование чисел в визуализациях
В некоторых визуализациях Redash можно управлять форматированием чисел. Управление форматом осуществляется с помощью строки формата. Ниже приведены примеры различных вариантов форматирования.
Числа
|
Число |
Формат |
Выход |
|
10000 |
‘0,0.0000’ |
10,000.0000 |
|
10000.23 |
‘0,0’ |
10,000 |
|
10000.23 |
‘+0,0’ |
+10,000 |
|
-10000 |
‘0,0.0’ |
-10,000.0 |
|
10000.1234 |
‘0.000’ |
10000.123 |
|
100.1234 |
‘00000’ |
00100 |
|
1000.1234 |
‘000000,0’ |
001,000 |
|
10 |
‘000.00’ |
010.00 |
|
10000.1234 |
‘0[.]00000’ |
10000.12340 |
|
-10000 |
‘(0,0.0000)’ |
(10,000.0000) |
|
-0.23 |
‘.00’ |
-.23 |
|
-0.23 |
‘(.00)’ |
(.23) |
|
0.23 |
‘0.00000’ |
0.23000 |
|
0.23 |
‘0.0[0000]’ |
0.23 |
|
1230974 |
‘0.0a’ |
1.2m |
|
1460 |
‘0 a’ |
1 k |
|
-104000 |
‘0a’ |
-104k |
|
1 |
‘0o’ |
1st |
|
100 |
‘0o’ |
100th |
Валюта
|
Число |
Формат |
Выход |
|
1000.234 |
’$0,0.00’ |
$1,000.23 |
|
1000.2 |
‘0,0[.]00 $’ |
1,000.20 $ |
|
1001 |
’$ 0,0[.]00’ |
$ 1,001 |
|
-1000.234 |
‘($0,0)’ |
($1,000) |
|
-1000.234 |
’$0.00’ |
-$1000.23 |
|
1230974 |
‘($ 0.00 a)’ |
$ 1.23 m |
Байты
|
Number |
Format |
Output |
|
100 |
‘0b’ |
100B |
|
1024 |
‘0b’ |
1KB |
|
2048 |
‘0 ib’ |
2 KiB |
|
3072 |
‘0.0 b’ |
3.1 KB |
|
7884486213 |
‘0.00b’ |
7.88GB |
|
3467479682787 |
‘0.000 ib’ |
3.154 TiB |
Проценты
|
Number |
Format |
Output |
|
100 |
‘0%’ |
100% |
|
97.4878234 |
‘0.000%’ |
97.488% |
|
-4.3 |
‘0 %’ |
-4 % |
|
65.43 |
‘(0.000 %)’ |
65.430 % |
Экспоненциальные
|
Number |
Format |
Output |
|
1123456789 |
‘0,0e+0’ |
1e+9 |
|
12398734.202 |
‘0.00e+0’ |
1.24e+7 |
|
0.000123987 |
‘0.000e+0’ |
1.240e-4 |
Воронкообразные визуализации
Воронкообразная визуализация доступна в меню Visualization Type. Она проста в изготовлении, поскольку для ее создания требуется только два поля из запроса: step и value.
В приведенном примере возвращаемые данные выглядят следующим образом:
Как сделать сводную таблицу
Визуализация сводных таблиц Redash позволяет объединять записи из результатов запроса в новое табличное представление. Это похоже на операторы PIVOT или GROUP BY в SQL. Однако вместо SQL-кода визуализация настраивается с помощью перетаскиваемых полей.
Step 1: Напишите запрос
Он должен вернуть как минимум три столбца. Исходный запрос для сводной таблицы обычно не агрегирован или «расплавлен». В приведенном ниже примере я извлекаю ориентировочные данные из школьной системы оценок. Это ложные данные.
SQL-запрос является "глупым". Он не группирует и не сортирует данные. Поэтому мы будем использовать сводную таблицу, чтобы сделать это без SQL.
Сохраните запрос.
Шаг 2: Добавление визуализации сводной таблицы
Нажмите кнопку New Visualization и выберите в качестве типа визуализации Pivot Table. Предварительный просмотр визуализации справа будет обновлен и покажет разворотную таблицу.
Все псевдонимы полей из результатов запроса станут доступны в верхней части поверхности управления поворотной таблицей. Их можно перетащить на сторону строки или столбца. Можно также вложить их друг в друга.
Приведем несколько примеров на примере данных об успеваемости:
Параметры визуализации таблиц
Использование таблиц
Для источников данных, поддерживающих собственный синтаксис запросов (SQL или NOSQL), можно выбрать формат возврата данных, какие столбцы возвращать и в каком порядке, изменив запрос. Однако такие источники, как CSV-файлы или Google Sheets, не поддерживают синтаксис запросов. Поэтому Redash позволяет вручную изменять порядок, скрывать и форматировать данные в визуализации таблиц.
Настройки визуализации
Для начала работы нажмите кнопку Edit Visualisation под видом таблицы. Появится панель настроек, которая выглядит следующим образом:
Здесь можно:
- Упорядочить столбцы, перетащив их влево или вправо, как показано желтым выделением.
- Скрыть столбцы, установив флажок, выделенный зеленым цветом.
- Форматировать столбцы с помощью параметров форматирования, выделенных красным цветом.
Форматирование столбцов
Redash чувствителен к типам данных, характерным для большинства баз данных: текст, числа, даты и булевы выражения. Но в нем также имеется специальная поддержка нестандартных типов колонок, таких как документы JSON, изображения и ссылки.
Распространенные типы данных
Redash отображает столбец как текст, если источник данных не предоставляет информацию о типе. Однако можно заставить его использовать произвольные типы с помощью редактора визуализации таблиц. Это особенно полезно для таких источников, как SQLite, Google Sheets или CSV-файлы, где данные о типе недоступны. Например:
- Отображать все плавающие значения с точностью до трех знаков после запятой
- Отображать только месяц и год в столбце даты
- Обнулить все целые числа
- Добавлять или вставлять текст в числовые поля
Особые типы данных
Redash также поддерживает типы данных, выходящие за рамки общепринятых спецификаций баз данных.
- Документы в формате JSON
Если базовые данные возвращают в поле текст в формате JSON, вы можете указать Redash отображать его в таком виде. Это позволяет сворачивать и разворачивать элементы в чистом виде. Это особенно полезно при запросах к RESTful API с использованием источника данных JSON.
- Изображения
Если поле в вашей базе данных содержит ссылки на изображение, Redash может отобразить это изображение в строке с результатами таблицы. Это особенно удобно для приборных панелей.
В приведенной выше панели инструментов поле Customer Image представляет собой URL-адрес изображения, которое Redash отображает на месте.
- HTML-ссылки
Как и в случае с изображениями, HTML-ссылки из вашей БД можно сделать кликабельными в Redash. Для этого достаточно воспользоваться опцией Link в селекторе формата столбцов.
Типы визуализации
Redash поддерживает несколько различных типов визуализации - Таблица является представлением по умолчанию.
Boxplot
Chart - Line, Bar, Area, Pie, Scatter
Cohort
Counter
Funnel
Map
Pivot Table
Sankey
Sunburst
Word Cloud


























