Сегодня рассмотрим необычное использование объекта «Диаграмма радар» (Chart – Radar Chart) для отображения неких величин пропорциональным количеством полосок по секторам.

Диаграмма радар или роза ветров в QlikView

Итак, что нам для этого нужно:

  1. Нам потребуется определиться, сколько секторов будем отображать на «радаре». Эту величину пока зафиксируем. Пусть это будет 12 секторов. Для этого потребуется вспомогательная таблица, не связанная с другими таблицами. Поэтому в скрипте надо написать следующее:

  1. Зададим переменную, которая будет говорить, сколько максимально полосок можно рисовать в одном сегменте.

  1. Создадим ещё одну вспомогательную таблицу, в этот раз для полосок:
  2. Ну и пусть у нас есть вот такая таблица исходных данных:

    в которой для каждой из группы есть 12 разных DATA_VAR с какими-то данными.

Создание объекта “Диаграмма радар”:

  1. Начнем с создания объекта Диаграмма “Диаграмма радар” (Chart – Radar Chart).
  2. На вкладке “Измерения” (Dimensions) укажем первый расчетный дименшин по формуле:
  1. Тут же, на вкладке “Измерения” (Dimensions), указываем второй дименшин – просто поле:
  1. На вкладке “Выражение” (Expression) указываем всего одно выражение:

    Свойства диаграммы QlikView
  2. Таким образом, мы для каждого нашего фиксированного уровня “_LEVEL” рисуем круговую линию одинакового значения “SUM(_LEVEL)”. Получаем такую визуализацию:SUM() Qlik

Теперь сама идея:
Мы будем управлять закраской сегментов в зависимости от наших рассчитанных значений для каждого сегмента, “скрывая” полоски – просто делая их белыми (или прозрачными).

  1. Для этого на той же вкладке “Выражение” (Expression) раскроем + у нашего выражения и в “Цвет фона” (Background Color) напишем следующую формулу:

Сейчас мы применили первый способ закраски – “градиент закраски от центра”, используя функцию ColorMix1 и получили следующее:

SUM() Qlik

  1. Далее выполним косметические настройки:
    1. На вкладке «Представление» (Presentation)
  • Выключим галочку “Показать легенду” (Show Legend)
  • Увеличим ширину линии “Ширина линии” (Line Width) до 6.
  • Выключим все галочки “Всплывающие метки” (Pop-Up Labels), “Подсветка” (Highlight), “Скрыть нулевые значения” (Suppress Zero-Values) и “Скрыть отсутствующие” (Suppress Missing).

Свойства диаграммы QlikB. На вкладке «Общие» (General)

  • Уберем галочку “Показывать заголовок в диаграмме” (Show title in chart)
  • Включим галочку “Только чтение” (Read Only)

Свойства диаграммы QlikC. На вкладке «Оси» (Axes)

  • Включаем все три галочки в блоке “Масштаб” (Scale) и присвоим:
    “Стат. Мин.”(Static Min) = 0
    “Стат. Макс.” (Static Max) = vCountLevels
    “Стат. Шаг” (Static Step) = 1Свойства диаграммы Qlik
  1. Получаем следующее:SUM() Qlik
  2. Здесь же, на вкладке «Оси» (Presentation – Axes) зайдем в настройки шрифта выводимых надписей на графике (кнопка “Шрифт” (Font) блока “Оси выражений” (Expression Axes)):Свойства диаграммы Qlik
  1. Там же далее зайдем в настройки цвета выводимых надписей (“Цвет” – Color) и сделаем цвет прозрачным.Свойства диаграммы Qlik
  2. Отключим рамку и заголовок и получим:Роза ветров в QlikView
  1. Теперь отвлечемся, и я расскажу дополнительно, как просто сделать опцию, которой можно управлять дополнительными параметрами, например, показывать или нет “риски” на графике.
  • Как задать опцию через переменную, знают все, а мы сделаем её через одиночное поле таблицы:

  • Теперь просто создаем обычный “Список” (List Box).
  • Указываем в качестве “Поля” (Field) наше новое поле “_SHOW_HYPHEN”.
  • На вкладке “Представление” (Presentation) стиль выбора “Переопределение стиля” (Selection Style Override) указываем как «Переключатели окон» (Windows Checkboxes).
  • Убираем заголовоксвойства списка Qlik
  • Получаем:Роза ветров в QlikView
  • Теперь нам нужно, чтобы опция стала действительно управлять показом “рисок” на графике. Для этого на вкладке “Оси” (Axes) войдем в настройки цвета “Цвет оси” (Axis Color) блока “Оси выражения” (Expression Axes) выберем «Базовый цвет» -> «Вычисляемый» (Base Color -> Calculated) и в качестве выражения пропишем:

Редактор выражений QlikView

  1. Если нужно скрыть разделительные линии между секторами и разделить сектора белыми линиями, то, так как у нас количество секторов зафиксировано, можно просто создать и разместить поверх диаграммы такие белые линии нужной толщины. Получится как в начальном примере.
  2. Будет также удобно сделать надписи по кругу около каждого сектора. Вот один из простых способов для этого:
  • Возьмем стандартный объект Диаграмма – “Круговая диаграмма” (Chart – Pie Chart).
  • При создании чарта на первой вкладке «Общие» (General):
    • выключим галочку “Показывать заголовок диаграммы” (Show title in chart),
    • включим галочку “Только чтение” (Read only).Свойства диаграммы Qlik
  • На вкладке “Измерения” (Dimensions) добавляем всего один вычисляемый дименшин, который даст на нашем круге 12 позиций для надписей:

  • На следующей вкладке “Выражения” (Expression) создаем следующее выражение:

  • На вкладке “Выражения” (Expression) включим галочку “Значения на точках графика” (Values on data points)Свойства диаграммы Qlik
  • На вкладке Стиль (Style) обязательно выберем стиль отображения “Вид” (Look) – самый верхний левый угол:Свойства диаграммы Qlik
  • На вкладке Цвета (Colors) делаем фон прозрачным, переведем ползунок “Прозрачность” (Transparency) в положение 100% и все цвета с 1 по 12 также сделаем прозрачными.Свойства диаграммы Qlik
  • На вкладке Представление (Presentation) выключим галочки “Всплывающие метки” (Pop-Up Labels) и “Подсветка” (Highlight) и получаем:Dual() Qlik
  • Теперь осталось только отключить заголовок и бордюр, выбрать подходящий шрифт для наших цифр, их размер и всё это совместить с имеющейся диаграммой по линиям. Получится так:Dual() Qlik
  1. Если необходимо скрыть и внешнюю черную рамку круга, это можно сделать, создав обычный “Текст” объект, у которого:
  • убрать заголовок
  • установить прозрачный фон
  • включить скругление всех четырех углов
  • выбрать вид скругления “Relative” =100%
  • покрасить цвет бордюра в белый
  • назначить толщину бордюра = 3.

И вот, наш пример будет готов!

Комментируйте и делитесь своим мнением ниже!