Альманах визуализации, выпуск №1/5. Управляемая роза ветров

Алексей Шабалин

Алексей Шабалин

Опыт работы с QlikView: с февраля 2012 года

Увлечение и хобби:
визуализация и анализ данных, генератор идей, проработка новых технологий, разработка наглядных систем контроля процессов.
Алексей Шабалин

Сегодня рассмотрим необычное использование объекта «Диаграмма радар» (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.

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

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

Алексей Шабалин

Опыт работы с QlikView: с февраля 2012 года Увлечение и хобби: визуализация и анализ данных, генератор идей, проработка новых технологий, разработка наглядных систем контроля процессов.

Комментарии

  • Август 18, 2016 at 21:58
    Permalink

    А могли бы вы показать скриншот рабочей формулы ?

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

    IF( _LEVEL<=Round( vCountLevels*SUM(IF(DATA_VAR=_СЕГМЕНТ, DATA_SUMMA)) MAX(total AGGR(SUM(DATA_SUMMA),DATA_VAR)), 1)

    ColorMix1((_LEVEL-1)/(vCountLevels-1),RGB(255,200,155),RGB(57,130,172))
    ARGB(0,255,255,255)

    )

    Здесь пропущены некоторые символы.

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Подпишись на Data-Daily!

Введите email и будьте в курсе!

Подпишись!