Ранее мы уже писали о PokemonGo, дополненной реальности и наборам аналитических данных по игре, а не этой неделе мы публикуем приложениеQlikFreak по первому поколению из 151 покемона. В конце статьи вы можете скачать готовое приложение QlikView (.qvw файл) с покемонской аналитикой.
PokemonGo: Загрузка данных в QlikView
Для загрузки данных в приложение используется Qlik REST Connector, который помогает закачать данные с http://pokeapi.co/. Это не сложнее, чем OLE DB соединение – в настройках вводится адрес и сервер передает в QlikView структуру данных JSON, которые загружаются с помощью коннектора. После этого начинаем работу уже в QlikView.
Добавим только несколько переменных и цикл FOR, чтобы можно было читать несколько таблиц (без ручного изменения соединения)
НА ЗАМЕТКУ! Для дополнительной информации по этому вопросу перейдите в QVD Generator, который есть здесь.
Pokemon-ы в QlikView: Обзор приложения
Давайте посмотрим приложение по покемонам подробнее:
Дашборд: Первая вкладка показывает все данные по покемонам первого поколения, такие как тип, форма, места обитания.
Pokémon: На этой вкладке вы найдете полную информацию по каждому покемону: от роста и веса до движений, которым они могут научиться. Для навигации по покемонам, вы можете использовать стрелки или воспользоваться поиском.
Статистика: Вкладка с детальной статистикой поможет найти лучших покемонов в вашу команду – по скорости, атакующим и защитным характеристикам, а также по специальному баллу от создателя приложения (QlikFreak Score).
Пузырьковая диаграмма: Покемоны на пузырьковой диаграмме – куда же мы без scatterplot!
Гистограмма: Узнайте подробно о распределении покемонов по различным показателям – защита, атака, скорость, рост, вес и т.д.
Движения: Как движения может выучить мой покемон? Вот та визуализация, которая поможет вам ответить на этот вопрос:
Pokédex: Для работы с полным индексом покеменов, вам нужно установить расширение QAR (детальные инструкции есть в README файле в архиве).
Некоторые тонкости визуализации
Из этого приложения вы можете научиться некоторым тонкостям визуализации:
Вам не всегда нужны фильтры в листбоксах
Иногда не обязательно использовать типичные фильтры в листбоксах. Например, на вкладке дэшборда Джулиан, автор приложения, специально разработал чарты и таблицы таким образом, чтобы пользователь взаимодействовал напрямую с ними, без фильтров. Получилось очень даже здорово
Выходите за рамки
По умолчанию, большинство приложений QlikView организовано по такой схеме:
Это классическая рамка, в которой наверху расположены временные фильтры, слева – все остальные фильтры, справа — визуализации.
Не бойтесь менять стандарты. Создайте вверху кнопки KPI. Делайте новую разбивку колонок. Экспериментируйте, но помните о пользователе приложения, спрашивайте, удобен ли новый тип визуализации.
Вот например, структура здесь 1-3-1:
Выделяйте важное
Мы всегда говорим об этом, но лишним повторить не будет – выделяйте важные для пользователя моменты в интерфейсе. Используйте цвет, стили и другие визуализации, чтобы подчеркнуть информацию важную, для принятия решения (например, найти покемона со скоростью значительно выше среднего ).
Показывайте данные в контексте
Всегда давайте дополнительную информацию к вашим данным – контекст помогает быстрее воспринимать данные в правильном разрезе и понимать, какую позицию вы занимаете (будь то рынок или мир покемонов).
Используйте цветовой код
Связывайте цвет с определенной идеей не только на одной вкладке, но и во всем приложении. Например, типы покемонов всегда связаны с определенными цветами: голубой – водные покемоны, желтый – электрические, фиолетовый – ядовитые и так далее. Эти цветовые соответствия присутствуют во всех чартах – таблицах, пузырьках и пр.
Помните о единообразии
Используйте единый тип шрифта, цветовую палитру и одинаковое выравнивание и распределение объектов по сетке. Вот удобная панель инструментов для решения этой задачи. Дэшборд должен быть не только информативным, но и аккуратным!
Продумывайте возможности для продвинутых аналитиков
Хорошо, когда на дашборде появляется дополнительная информация, если пользователь ее запрашивает, а в остальное время ее не видно (то, что называется «on demand»). Например, когда мы выбираем определенное движение покемона, появляется расширенная информация о том, какие эффекты оно может давать:
Не забывайте о юзабилити
Если что-то выглядит как кнопка, значит это и должно быть кнопкой. Не путайте пользователя. Например, здесь – все кнопки, действительно, кнопки и они интерактивны.
Добавляйте подсказки для пользователей
Иногда при разработке взгляд «замыливается», и разработчику не всегда очевидно, что где-то нужно добавить подсказки для пользователей. Вот здесь, например, Джулиан добавил всплывающие легенды на графиках, они облегчают восприятие нашего графика, а их отражение в интерфейсе только занимает место:
Используйте интерактивную сортировку
В прямых таблицах можно удобно добавлять интерактивную сортировку. Можно быстро определить ТОП-10 самых быстрых покемонов, или, наоборот, «черепах», с которыми не хотелось бы связываться.
Fractile() для сравнения способностей покемонов
Также в приложение можно сравнить боевые способности каждого покемона благодаря специальному KPI – QlikFreak Score:
Как вы видите у нас большой разброс данных: по некоторым характеристикам – от 10 до 250 очков, а по некоторым – от 20 до 125. Поэтому мы сделали нормализацию при помощи Min-Max формулы.
Например, по показателю НР, получим такую визуализацию:
По этой гистограмме мы видим, что НР в среднем по первому поколению покемонов составляет от 60 до 65 очков (самая высокая часть дуги гистограммы). Хотя у нас есть один покемон с 250 очками (Chansey). Если мы будем использовать для Min-Max нормализации данные Chansey, мы «накажем» остальных покемонов, выставляя им очень низкий грейд. Поэтому Джулиан решил немного «обрезать хвосты», чтобы получить более адекватное распределение, и использовал fractile(), чтобы исключить выбросы в 2%.
После этого мы получаем более реалистичную статистику по возможностям покемонов. Ну а также можно включить в расчеты ваши персональные предпочтения по весу показателя (атака, защита и т.д.) для общей оценки покемона. Например, если все показатели для вас одинаково важны, то скрипт получится таким:
Даем вес каждому элементу в 16.6%, тогда топ-покеменов составят:
Но распределение вы можете менять по своему усмотрению, в зависимости от ваших предпочтений, например:
Тогда топ покемонов изменится:
НА ЗАМЕТКУ! Если вы хотите изменить распределение, измените данные в скрипте в таблице Map_Stat_Weight и перезапустите документ.
Коллеги, на этом сегодня все и еще раз спасибо Джулиану Виллафуэрте за отличное приложение.
Кстати, не забудьте скачать приложение!
Создавайте свои красивые приложения Qlik в новых областях применения!
Свежие комментарии