Часто схожие результаты показателей по нескольким фиксированным группам надо отображать одновременно на одном Dashboard. Если возможные значения показателей лежат в известном диапазоне, тогда есть возможность показать результаты на одной прямой.
Сегодня по шагам расскажу, как создать такое представление результатов.
QlikView: Работа с прямой
Сначала определимся с самой прямой. Нужно выбрать её размер и цветовую заливку.
- Создадим прямую при помощи объекта «Текст» (Text), выбрав заливку фона по градиенту между двух цветов.
НА ЗАМЕТКУ! Если мы хотим сделать переход от верхнего цвета к нижнему через промежуточный, третий, цвет, нам понадобится создать линию, состоящую уже из двух текстовых объектов, одинаковых по высоте и состыкованных «встык» без зазора.
В нашем примере:
- верхний цвет — RGB(12,95,248)
- промежуточный цвет — RGB(216,29,231)
- нижний цвет — RGB(255,223,5)
- У объектов в Свойствах отключаем бордюр
- Также, естественно, отключаем заголовок.
- Созданную «полоску» помещаем на самый дальний план (выставляем Слой = -2)
QlikView: Точки на прямой
Теперь отобразим непосредственно сами «точки» на нашей прямой.
- Для этого создаем объект Линейный график (Line Chart).
- Вкладку Измерения (Dimensions) у него пропускаем – на ней не надо ничего выбирать
- На вкладке Выражения (Expression):
- Добавляем столько точек, сколько хотим отобразить разных фиксированных групп. В нашем случае это:
Выражение1: SUM( IF(DATA_GROUP=group-1
, DATA_PROCENT))
Выражение2: SUM( IF(DATA_GROUP=group-2
, DATA_PROCENT))
Выражение3: SUM( IF(DATA_GROUP=group-3
, DATA_PROCENT))
Выражение4: SUM( IF(DATA_GROUP=group-4
, DATA_PROCENT))
- У всех созданных выражений отключаем внизу галочку «Выражения как легенда» (Expressions as legend)
- Поскольку линии нам здесь не нужны, в «Показать опции» (Display Options) ставим галочку только у «Символ» (Symbol) и выбираем символ = «Круги» (Circles).
- На вкладке Стиль (Style)
- Оставляем ориентацию как есть – вертикальные столбцы,
- Вид выбираем самый первый наверху, обычные линии (без теней).
- На вкладке Представление (Presentation)
- Увеличиваем размер «Размер символа» (Symbol size) до 4 точек,
- Отключаем «Всплывающие метки» (Pop-up Labels)
- Отключаем «Подсветка» (Highlight)
- На вкладке Оси (Axes)
Прячем оси у всех заданных выражений. Для этого:
- ставим галочку «Скрыть оси» (Hide Axes),
- Оставляем галочку «Forced 0» у всех,
- Только у первого выражения устанавливаем:
«Стат.мин.» (Static Min) = -5,
«Стат. Макс.” (Static Max) = 105,
«Стат. Шаг.» (Static Step) = 1.
- На вкладке Макет (Layout)
- Выключим галочку «Использовать границы» (Use borders)
- Установим уровень Слой -> «Пользовательский» = 5 (Layer -> Custom)
- Теперь подгоняем размер нашего линейного графика под размер линии, и чтобы «точки» встали посередине линии. Для подгонки размеров, можно у одной точки временно прописать в формуле «=1», а у другой «=0».
- Если есть необходимость добавить второй ободок другого цвета к нашим точкам, как
в моем примере, нужно просто клонировать уже готовый объект Линейный график (Line Chart), оставив его на том же месте, а в его свойствах только поменять:
- на вкладке «Представление» (Presentation) — «Размер символа» (Symbol Size)=6
- на вкладке «Макет» (Layout) — раздел Слой -> «Пользовательский» (Layer -> Custom) = 4
- на странице «Цвета» (Colors) меняем цвет первых четырех квадратиков
Получаем:
Уже сейчас можно повыбирать различные месяца, разные комбинации групп, чтобы посмотреть что получилось… Но пойдем дальше.
QlikView: Управление линиями
Теперь рассмотрим самый интересный прием — управление линиями!
- Для начала нам понадобится в скрипте — создать особую отдельную таблицу:
1 2 3 |
_ТОЧКИ: LOAD RowNo() as _ТОЧКА AUTOGENERATE 5; |
Эта таблица не должна соединяться ни с какой другой таблицей в макете, а к названию таблицы и поля мы добавили символ «_», чтобы скрыть и саму таблицу, и поле от пользователя. Это делается ещё одной командой в скрипте:
1 |
SET HidePrefix=`_`; |
- Теперь создадим новый объект Диаграмма — «Пузырьковая диаграмма» (Chart – Scatter Chart) и на вкладке «Измерения» (Dimensions) зададим два вычисляемых дименшина:
первый: =IF( _ТОЧКА<=3, _ТОЧКА)
второй: =IF( Match(DATA_GROUP,group-2
,group-4
), DATA_GROUP)
Для чего нам это понадобилось?
Первый дименшен — определяет нам для «рисования» линий три возможные координаты абсцисс: 1,2 и 3.
Для второго дименшина отбираем две четные наши группы: 2 и 4.
Дело в том, что этой «пузырьковой диаграммой» (Scatter Chart) мы нарисуем только правые две линии сносок, идущие к группе 2 и 4.
- Перейдем на вкладку «Выражения» (Expressions) и включим «Продвинутый режим» (Advanced Mode).
- вместо первого выражения напишем:
=_ТОЧКА - вместо второго выражения:
=Pick( _ТОЧКА,
Sum(DATA_PROCENT),
IF(DATA_GROUP=group-2
, 90, null()),
IF(DATA_GROUP=group-4
, 50, null()) )
Получаем:
Первое выражение задает координату X для каждой линии, второе — координату Y. То есть формула второго выражения для случая, когда X=1 определяет координату Y, исходя из значения выражения SUM(DATA_PROCENT) для нашего второго дименшина (group-2 и group-4). Точки Y для случая, когда X у линий будет равен 2, задаем условием: для group-2 это 90, для group-4 нет точки вообще. (null — не рисуется).
Аналогично для случая X=3. Тут только линия, рисующая для group-4, имеет Y координату = 50.
- Далее – косметические манипуляции:
- На вкладке Общие (General)
- Отключаем галочку: «Показывать заголовок диаграммы» (Show Title in chart),
- Ставим галочку «Только для чтения» (Read only)
- На вкладке Измерения(Dimensions)
- Уберем галочки «Метки» (Label) у обоих наших дименшинов,
- У второго дименшина включим галочку «Скрыть значение Null» (Suppress when value is Null)
- На вкладке Представление (Presentation)
- Отключаем галочку «Показать легенду» (Show Legend)
- Отключаем галочку «Авторазмер символов» (Autosize Symbols)
- Ширину линии (Line Width) ставим = 1.
- В «Представление» (Representation) выбираем режим «Только линии» (Only lines).
- Отключаем галочки “Show X label”, “Show Y Label”, “Highlight”, “Pop-up Labels”
- На вкладке Макет (Layout)
- Отключаем бордюр «Использовать границы» (Use Borders)
- Отключаем опцию «Разр. Перем/Ред» (Size to data).
- «Слой» (Layer) выставляем пользовательский (Custom) = 9, чтобы линии были поверх всего.Получаем:
- На вкладке Заголовок (Caption) выключаем опцию «Показывать заголовок» (Show Caption).
- На вкладке Оси (Axes)
- У «X оси» выключим галочку «Forced 0»
- Включим галочки «Скрыть оси» (Hide Axis) у обоих осей «X ось» и «Y ось».
- Зафиксируем масштаб: включим галочки «Стат.мин.» (Static Min) и «Стат.макс» (Static Max) у «X оси» и впишем возможные значения: Мин=1, а Макс=3.
- Зафиксируем масштаб: включим галочки «Стат.мин.» (Static Min) и «Стат.макс» (Static Max) у «Y оси» и впишем возможные значения: Мин=0, а Макс=100.
В итоге получим такой результат:
- Ну а теперь, нам осталось только на той же вкладке «Цвета» (Colors) сделать фон прозрачным (в разделе «Граница фона» (Frame Background)) и подогнать размеры объекта под нашу линию и крайние точки на ней:
- Правые точки наших линий закреплены и не двигаются, поэтому в эти места можно разместить стационарно любые другие объекты, которые будут пояснять значения данных точек на графике.
В моем примере это два «Текст» (Text) объекта, которые выглядят как листки бумаги из блокнотика. Вы можете придумать что угодно своё, главное здесь — это меняющиеся линии сносок.
- Линии слева для групп «group-1» и «group-3» делаем аналогичным образом, с той лишь разницей, что:
- Во втором дименшине надо прописать:
=IF( Match(DATA_GROUP,group-1
,group-3
), DATA_GROUP)
- Во втором «Выражении» (Expression) теперь надо написать:
=Pick( _ТОЧКА,
IF(DATA_GROUP=group-1
, 60, null()),
IF(DATA_GROUP=group-3
, 22, null()),
Sum(DATA_PROCENT) )
- Ну а на самих «листочках-сносках» можно разместить ещё какую-нибудь дополнительную информацию — например, динамику изменения этого показателя за прошедший период:
На этом сегодня все! Комментируйте и делитесь своими идеями!
Свежие комментарии