Ранее мы уже писали о PokemonGo, дополненной реальности и наборам аналитических данных по игре, а не этой неделе мы публикуем приложениеQlikFreak по первому поколению из 151 покемона. В конце статьи вы можете скачать готовое приложение QlikView (.qvw файл) с покемонской аналитикой.

PokemonGo: Загрузка данных в QlikView

Для загрузки данных в приложение используется Qlik REST Connector, который помогает закачать данные с http://pokeapi.co/. Это не сложнее, чем OLE DB соединение – в настройках вводится адрес и сервер передает в QlikView структуру данных JSON, которые загружаются с помощью коннектора. После этого начинаем работу уже в QlikView.

27_25.png

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

НА ЗАМЕТКУ! Для дополнительной информации по этому вопросу перейдите в QVD Generator, который есть здесь.

27_26

Pokemon-ы в QlikView: Обзор приложения

Давайте посмотрим приложение по покемонам подробнее:

Дашборд: Первая вкладка показывает все данные по покемонам первого поколения, такие как тип, форма, места обитания.

27_27

Pokémon: На этой вкладке вы найдете полную информацию по каждому покемону: от роста и веса до движений, которым они могут научиться. Для навигации по покемонам, вы можете использовать стрелки или воспользоваться поиском.

27_28

Статистика: Вкладка с детальной статистикой поможет найти лучших покемонов в вашу команду – по скорости, атакующим и защитным характеристикам, а также по специальному баллу от создателя приложения (QlikFreak Score).

27_29.png

Пузырьковая диаграмма: Покемоны на пузырьковой диаграмме – куда же мы без scatterplot!

27_30

Гистограмма: Узнайте подробно о распределении покемонов по различным показателям – защита, атака, скорость, рост, вес и т.д.

27_31

Движения: Как движения может выучить мой покемон? Вот та визуализация, которая поможет вам ответить на этот вопрос:

27_32.png

Pokédex: Для работы с полным индексом покеменов, вам нужно установить расширение QAR (детальные инструкции есть в README файле в архиве).

C:\Users\pavlova\Pictures\2016-08-25_12-13-37.png

Некоторые тонкости визуализации

Из этого приложения вы можете научиться некоторым тонкостям визуализации:

Вам не всегда нужны фильтры в листбоксах

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

Выходите за рамки

По умолчанию, большинство приложений QlikView организовано по такой схеме:

27_06

Это классическая рамка, в которой наверху расположены временные фильтры, слева – все остальные фильтры, справа — визуализации.

Не бойтесь менять стандарты. Создайте вверху кнопки KPI. Делайте новую разбивку колонок. Экспериментируйте, но помните о пользователе приложения, спрашивайте, удобен ли новый тип визуализации.

27_07

Вот например, структура здесь 1-3-1:

27_08

Выделяйте важное

Мы всегда говорим об этом, но лишним повторить не будет – выделяйте важные для пользователя моменты в интерфейсе. Используйте цвет, стили и другие визуализации, чтобы подчеркнуть информацию важную, для принятия решения (например, найти покемона со скоростью значительно выше среднего ).

27_09

27_10

Показывайте данные в контексте

Всегда давайте дополнительную информацию к вашим данным – контекст помогает быстрее воспринимать данные в правильном разрезе и понимать, какую позицию вы занимаете (будь то рынок или мир покемонов).

27_11

Используйте цветовой код

Связывайте цвет с определенной идеей не только на одной вкладке, но и во всем приложении. Например, типы покемонов всегда связаны с определенными цветами: голубой – водные покемоны, желтый – электрические, фиолетовый – ядовитые и так далее. Эти цветовые соответствия присутствуют во всех чартах – таблицах, пузырьках и пр.

27_12

Помните о единообразии

Используйте единый тип шрифта, цветовую палитру и одинаковое выравнивание и распределение объектов по сетке. Вот удобная панель инструментов для решения этой задачи. Дэшборд должен быть не только информативным, но и аккуратным!

27_13

Продумывайте возможности для продвинутых аналитиков

Хорошо, когда на дашборде появляется дополнительная информация, если пользователь ее запрашивает, а в остальное время ее не видно (то, что называется «on demand»). Например, когда мы выбираем определенное движение покемона, появляется расширенная информация о том, какие эффекты оно может давать:

27_03.png

Не забывайте о юзабилити

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

27_14

Добавляйте подсказки для пользователей

Иногда при разработке взгляд «замыливается», и разработчику не всегда очевидно, что где-то нужно добавить подсказки для пользователей. Вот здесь, например, Джулиан добавил всплывающие легенды на графиках, они облегчают восприятие нашего графика, а их отражение в интерфейсе только занимает место:

27_15

27_16

Используйте интерактивную сортировку

В прямых таблицах можно удобно добавлять интерактивную сортировку. Можно быстро определить ТОП-10 самых быстрых покемонов, или, наоборот, «черепах», с которыми не хотелось бы связываться.

27_17

Fractile() для сравнения способностей покемонов

Также в приложение можно сравнить боевые способности каждого покемона благодаря специальному KPI – QlikFreak Score:

27_18

Как вы видите у нас большой разброс данных: по некоторым характеристикам – от 10 до 250 очков, а по некоторым – от 20 до 125. Поэтому мы сделали нормализацию при помощи Min-Max формулы.

Например, по показателю НР, получим такую визуализацию:

27_19

По этой гистограмме мы видим, что НР в среднем по первому поколению покемонов составляет от 60 до 65 очков (самая высокая часть дуги гистограммы). Хотя у нас есть один покемон с 250 очками (Chansey). Если мы будем использовать для Min-Max нормализации данные Chansey, мы «накажем» остальных покемонов, выставляя им очень низкий грейд. Поэтому Джулиан решил немного «обрезать хвосты», чтобы получить более адекватное распределение, и использовал fractile(), чтобы исключить выбросы в 2%.

27_20

После этого мы получаем более реалистичную статистику по возможностям покемонов. Ну а также можно включить в расчеты ваши персональные предпочтения по весу показателя (атака, защита и т.д.) для общей оценки покемона. Например, если все показатели для вас одинаково важны, то скрипт получится таким:

27_21

Даем вес каждому элементу в 16.6%, тогда топ-покеменов составят:

27_22

Но распределение вы можете менять по своему усмотрению, в зависимости от ваших предпочтений, например:

27_23

Тогда топ покемонов изменится:

27_24

НА ЗАМЕТКУ! Если вы хотите изменить распределение, измените данные в скрипте в таблице Map_Stat_Weight и перезапустите документ.

Коллеги, на этом сегодня все и еще раз спасибо Джулиану Виллафуэрте за отличное приложение.

Кстати, не забудьте скачать приложение!

Создавайте свои красивые приложения Qlik в новых областях применения!