Вернемся к теме управления сносками в динамике. В «Развлекаемся с гистограммами в QlikView: овальные столбцы» я уже рассказывал, как работать с динамическими диаграммами. Но в этот раз сноски будут на круговой диаграмме.

О чем пост:

Сегодня мы научимся позиционировать сноски точно на свой сегмент круговой диаграммы.

Зачем пост:

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

Исходные данные:

Для данного примера нам потребуются данные, в которых для каждой даты есть три разных типа группы с какими-то значениями. Например:

Так же нам необходимо в скрипте создать две вспомогательные таблицы:

И

Построение Pie Chart

  1. Создаем круговую диаграмму, объект Pie Chart.
  2. В качестве дименшина укажем: TYPE,
  3. На вкладке Выражения («Expressions») введём выражение:

 И получим:SUM(Value) QlikView

  1. Остаемся здесь же, на вкладке Выражения (Expressions). Раскроем {+} у выражения и в Цвет фона («Background Color») пропишем фиксированный цвет для каждой группы:

  1. На вкладке Стиль (Style) выберем стиль диаграммы «Тонкое плоское кольцо».
  2. На вкладке Основные (General) отключим галочку «Показать заголовок диаграммы» («Show Title in Chart»).
  3. Отключим границы и заголовок
  4. На вкладке Сортировка («Sort») обязательно надо сделать сортировку отрисовки сегментов строго в задуманном порядке. Для этого включим одну лишь галочку Выражение («Expression») и введем такое выражение:

Теперь выбираем нужный размер диаграммы и расположение легенды на ней. Например, так:Pie Chart QlikView

Процесс создания сносок

Теперь можно приступать к построению сносок. Вот тут-то нам и пригодятся, созданные ранее независимые таблицы: «_ЛИНИИ» и «_КОЛОНКИ». 

Идея заключается в следующем: На созданную круговую диаграмму наложим Пузырьковую диаграмму. На вход для рисования в Пузырьковой диаграмме («Scatter Chart»)  мы дименшинами подаем количество линий, которые мы собираемся рисовать и количество точек, из которых будет состоять каждая линия, а в качестве координат этих самых точек для линий будут вычисляемые формулы первого и второго выражения «Expression».

Итак, приступим с самому интересному:

  1. Создадим новый объект Пузырьковая диаграмма («Scatter Chart»), где
  • В качестве первого дименшина нажмем расчетный и введем:
    =IF( _ТОЧКА<=3, _ТОЧКА)
  • В качестве второго дименшина — тоже укажем расчетный и введем:
    =IF( _ЛИНИЯ<=5, _ЛИНИЯ)
  • Нажмем далее и на следующей вкладке включим галочку: Продвинутый режим («Advanced Mode»).
  • Вернёмся назад, на вкладку Выражения («Expressions»), (кнопка «Назад»). Как видим два выражения уже окажутся созданными, но нам их придется переделать (об этом ниже).
  • На вкладке Цвет («Color») сделаем фон прозрачным, чтобы при построении сносок видеть нашу диаграмму:
    • Передвинем ползунок Прозрачность («Transparency») на 100%,
    • Поднимем уровень Слой (Layer) до Верх («Top») (на вкладке Макет («Layout»).

Получаем:Pie Chart QlikView

  1. Теперь нам нужно изменить уже созданные выражения на свои, в соответствии с нашей идеей.
  • В первом выражении изменим формулу на следующую:

и назовем его «x» (в поле ввода Метка («Label»)).

  • Второе выражение также изменим на свою формулу

и назовем его «y» (в поле ввода Метка («Label»)).

Получим следующее:

Pie Chart QlikView

Мы специально создали 5 линий вместо трёх, чтобы на первом этапе двумя последними линиями обозначить центр нашего объекта. Так будет удобно расположить его по центру нашей круговой диаграммы.

  1. Теперь нужно настроить верный масштаб. Масштаб выбирается примерно, но сопоставим с планируемыми размерами объекта со сносками, поэтому:
  • На вкладке Оси (Axes):
    • для X координаты включим и пропишем Стат. макс. («Static Max»)=125, Стат.мин. («Static Min»)=0
    • для Y координаты соответственно Стат.макс. («Static Max»)=100, Стат. мин. («Static Min»)=0.
    • Устанавливаем галочки Скрыть ось («Hide Axis») для обоих осей.
  • На вкладке Представление (Presentation):
    • Уменьшаем ширину линии до 1 (Ширина линии («Line Width»)=1)
    • Отключаем галочку Показывать легенду («Show Legend»).
  • На вкладке Цвета (Colors): Для первых пяти цветов делаем цвет линий черным.
  • На вкладке General:
    • Отключаем галочку Показывать заголовок диаграммы («Show Title in Chart»)
    • Включаем Только чтение («Read Only»).

После этих настроек получаем:
Pie Chart QlikView

  1. Косметические исправления:
  • Отключаем заголовок
  • Отключаем границы
  • Растягиваем объект так, чтобы перекрестье попало точно в центр нашего кольца, а указатели сносок указывали внутрь сегментов на одинаковом расстоянии от внешней границы большей окружности.Pie Chart QlikView
  1. Вот, в принципе, наши динамические сноски готовы. Если предполагается, что на диаграмме всегда будут отображаться все три группы, то на этом можно закончить построение, но если есть вероятность, что количество групп может быть ограничено фильтрами, тогда нужно ещё кое-что доделать
  2. Надо сделать так, что когда группа не выбрана в текущем фильтре, то и соответствующая ей сноска не рисуется вообще. Для этого на вкладке Выражения («Expressions») доработаем наши выражения с учетом этих условий:
  • Для первой линии перед Pick добавим условие:
  • Для второй линии перед Pick добавим условие:
  • Для третьей линии перед Pick добавим условие:

ну и по одной закрывающей скобочке в конце каждой такой линии.

  • Эти три условия надо прописать и для «x» и для «у» выражений.
  1. В заключении уберём две вспомогательные линии, из которых сделано «перекрестье». Для этого на вкладке Измерения («Dimensions») у второго дименшина цифру 5 в его формуле заменим на 3.
  2. Ну а метки, отображающие величины над сносками, думаю, вы сможете добавить самостоятельно, только так же не забывайте, что и их надо тоже скрывать, когда их группа не попадает в текущий фильтр. т.е. у этих меток на вкладке Макет («Layout») надо прописать Условие («Conditional») по аналогии — вот такое условие показа:

Вот теперь все получилось: Pie Chart QlikViewХороших вам задумок и удачной реализации!