Нестандартные задумки требуют нестандартных решений. И QlikView позволяет такие необычные решения реализовать.

Итак, предположим у нас есть четыре расчетные группы, значения которых мы решили представить в виде полукольца! Давайте посмотрим, как имея в инструментах QlikView стандартный объект “Круговая диаграмма” реализовать эту задумку.

В качестве бонуса сегодня я также покажу, как сделать небольшие “прожилки” между основными данными в полукольце.

Этап 1. Исходные данные и круговая диаграмма QlikView

 

  1. Пусть у нас есть такая таблица с данными:

CIRCLE_GROUP, CIRCLE_MONTH, CIRCLE_SUMMA
group-1, 31.08.2014, 120

 group-2, 31.08.2014, 200,
group-3, 31.08.2014, 165

 group-4, 31.08.2014,

 и далее, для тех же четырёх групп ещё данные для нескольких месяцев.

  1. Создадим пару вспомогательных переменных:
  • vSpaceSize = 3

Это ширина “зазора” между данными в диаграмме (в градусах), которую потом можно менять динамически

  • vAllSum = =SUM(CIRCLE_SUMMA)

Это переменная, которая высчитывает текущую общую сумму по всем группам.

  1. Начнем с создания объекта Диаграмма – “Круговая диаграмма” (Chart – Pie Chart).
  • Вторую вкладку “Измерения” (Dimensions) сразу пропускаем – на ней никакого дименшина указывать не надо.
  • На следующей вкладке “Выражения” (Expressions) начинаем создавать выражения.

Первое выражение:

которое назовем “group1” (впишем в “Метка” / Label).

Свойства диаграммы QlikView

Этап 2. Полукруговая диаграмма в QlikView по шагам

Итак, в чем же идея полукруглой диаграммы? Идея привести все суммы групп к диапазону 180 градусов, за вычетом суммы всех “зазоров” (поэтому ширина зазора дается в градусах).

Теперь продолжим наши модификации.

  1. Создадим второе выражение на вкладке “Выражения” (Expressions) – это будет зазор:

=vSpaceSize

Назовем его “space1” (впишем в “Метку” / Label).Свойства диаграммы QlikView

  1. Далее создаем аналогично остальные выражения, чередуя:
    “group2”, “space2” ;   “group3”, “space3” ; …

После выражения с последней группой “group4” зазор уже делать не надо, зато надо сделать “заглушку” на 180 градусов. т.е. в последнем выражении надо прописать просто константу:
=180

Получится изначально как на скриншоте ниже:

Круговая диаграмма QlikView

  1. Выполним косметические настройки:
  • Отключаем бордюр и заголовок объекта.
  • На вкладке Общие (General): отключаем галочку: “Показывать заголовок диаграммы” (Show Title in Chart).
  • На вкладке Стиль (Style): Выбираем узкое кольцо.
  • На вкладке Представление (Presentation):
    • Отключаем галочки “Всплывающие метки” (Pop-up labels) и “Подсветка” (Highlight).
    • Отключаем показ легенды “Показывать легенду” (Show Legend).

И получаем:

 Pie Chart QlikView

  1. Закрепим за каждой группой определенный цвет: На вкладке «Выражения» (Expressions) раскрываем + у каждого выражения и прописываем цвет в “Цвет фона” (Background Color):
  • для “group1”: RGB(141,170,203)
  • для “group2”: RGB(187,216,34)
  • для “group3”: RGB(231,138,210)
  • для “group4”: RGB(105,84,150)Свойства диаграммы QlikView
  1. Теперь поработаем с «зазорами»:
  • Все там же, на вкладке Выражения (Expressions), раскрываем + у каждого выражения и прописываем цвет в “Цвет фона” (Background Color) для всех зазоров и для последнего выражения: RGB(255,255,255).
  • Получаем:Круговая диаграмма QlikView
  • Пробуем повыбирать разные комбинации групп и увидим, что сейчас зазоры показываются всегда, хотя должны отрисовываться, только тогда, когда они нужны.
    Поэтому доработаем все наши выражения для зазоров:
  • Формулу для выражения space1:
    =IF( group1>0
    AND RangeSum(group2,group3,group4)>0,  vSpaceSize, 0)
  • Формула для выражения space 2:
    =IF( group2>0
    AND RangeSum(group3,group4)>0,  vSpaceSize, 0)
  • Формула для выражения space3:
    =IF( group3>

               AND group4>0,  vSpaceSize, 0

  • Проверим, что теперь, при любых комбинациях выборки групп зазоры встают на свои места:Круговая диаграмма QlikView
  1. Перейдем к надписям на диаграмме

Если мы просто включим галочки “Значения на точках диаграммы” (Values on Data Points) на вкладке “Выражения” (Expressions) у всех выражений group1, group2, group3 и group4, то увидим лишь
пересчитанные значения сумм групп к 180 градусам.

Для выражений на вкладке “Число” (Number) не будем менять настройки “Форматировать формат цифр” (Number Format Settings), а оставим как есть “Выражение по умолчанию” (Expression Default). В этом случаем мы можем доработать наши формулы для групп с использованием функции DUAL,
которая позволит нам для рисования сегмента использовать преобразованное
значение, а метки к нему выводить какие угодно.

  • Изменим наше выражение для “group1”:

Как видим, при использовании функции DUAL мы связываем любую текстовую

  • информацию (первый параметр функции) с любой числовой (второй параметр). В результате на диаграмме текстовая информация показывается как надписи,
    а числовая определяет размер сегмента.
  • Аналогичные выражения пропишем и для оставшихся групп и получим:Круговая диаграмма QlikView
  1. Пропишем условие отображения группы, если она
    не входит в текущий фильтр.
  • Для выражения “group1” надо включить
    галочку “Условие” (Conditional) и прописать условие показа:

    Match(group-1, @(=CONCAT(distinct CIRCLE_GROUP,chr(39)&,&chr(39))))

  • Аналогичные условия прописываем и для остальных групп.
  1. Создаем текстовый объект, закрываем им правую половину круга.
  1. Разместим линии сносок, добавив
    простую строку ●─── &   перед Num (в первый параметр функции DUAL).
    Можно также поэкспериментировать со шрифтом для отображения сносок:
    например, взять Arial как в данном примере.

В итоге получаем:

Круговая диаграмма QlikView

Вот и вся идея построения полукруглой диаграммы!

П.С. Поделитесь своими приемами работы с круговыми диаграммами в комментариях.