15 заметок с тегом

табло

55 работ участников «Один раз увидеть»

В том году закончился конкурс ОРУ (один раз увидеть). Спасибо организаторам и все участникам, было круто. Вот разбор работ и моя последняя работа. Делал её из отпуска на коленке, но считаю, что самая это моя самая сильная работа из всего конкурса. Не успел только картинки пожать, чтобы быстрее грузилось. В во время реализации узнал про «новую» фишку размеров в css c помощью vw и vh. Очень удобно и полезно для адаптивности визуализаций и приложений в вебе.

14 января   Один раз увидеть   пример   табло
15 декабря   Один раз увидеть   пример   табло

Лолипоп чарт с осью времени в Табло

У Кати, одного из участников курса, был вопрос — как сделать «лолипоп» чарт c временем по оси икс.

Что хотелось получить в итоге

У Кати были очень интересные данные о смертных казнях в штате Техас. Просто потрясающий набор с огромным количеством деталей вплоть до цвета волос и глаз заключенных, а так же их предсмертных речей.

Данные хранились в CSV, когда открываешь их в Табло получается фигня:

Чтобы это исправить идём в настройки парсинга файла и выбираем в качестве разделителя запятую:

Раз и данные прочитались как надо:

Кстати, сначала пошёл исправлять такое через Экслеь, но это не сработало. Эксель неправильно кушает эти данные из-за наличия запятых в предсмертной речи.

В этой таблице даты хранятся в широком формате. Это не удобно, исправляем формат на длинный:

Подробнее про длинный и широкий формат в этой статье.

После функции pivot наши даты разместились в двух столбцах с названиями Pivot Filed Values и Pivot Filed Names:

В Values хранятся значения дат, а в Names — тип даты (дата рождения, обвинения, взятия под страду и дата смертной казни). Переназовём поля в Date и Date type:

Такой формат данных очень удобен для табло. Но теперь задваиваются (точнее зачетвиряются =) ) строки:

Тогда когда мы будем подсчитывать кол-во смертников, складывать сумму лет проведенных в тюрьме и т. п. мы будем получать неверный результат. Чтобы этого избежать можно продублировать источник (надо было сделать заранее) и в одном источнике сделать pivot, а в другом нет. Тогда источник с pivot будем использовать только для визуализации lolipop, а другие для других графиков. Делается, например, здесь:

Вернемся к лолипопу. Расположим поля в области визуализации, чтобы получить точки лолипопа. Отфильтруем строки данных, для которых нет всех данных.

Теперь нам надо добавить палочки между точками. Это делается довольно хитро. Для этого будем использовать визуальный атом в виде гант чарта. В отличии от обычных баров и засечек у этого визуального атома в Табло есть начало координат (где расположить бар на оси) и размер бара (его ширина).

Чтобы «закрасить» растояние между точками, создадим расчетное поле дублирующие даты и изменим ему тип данных на число с запятой. Это нужно чтобы мы потом могли применить к этому числу Quick Table Calculation, для дат его применять нельзя. Ещё надо перетащить копию дату в Measures.

Создадим ещё одну ось с датой и объединим её с предыдущей через dual axis:

Не забудем синхронизировать оси:

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

Добавим быстрое Quick Table Calculation для подсчета разницы между точками.

Теперь настроим этот расчет:

Сделаем так, чтобы Табло рассчитывал разницу к предыдущей точке по дате для каждого типа даты:

Теперь мы получили разницу между точками, но она откладывается вправо:

Чтобы это исправить добавим в расчетное поле минус.

Вуаля! Подстроим размеры ганчарта и готово.

На таком графике сразу видно много интересного:

15 декабря   инструкция   пример   табло

Население России с 1926 по 2017 год

Александр Богачев и Андрей Дорожный, которые ведут в телеграмме каналы «Чартомойка» и «Дата публикации» организовали аналог Makeover Monday, ну или придумали сами. В любом варианте это очень интересный конкурс для датагиков и журналистов данных — спасибо!
Вот примеры работ с прошлой недели про моего любимого Дудя.

Тоже решил поучаствовать. Сделал небольшую визуализацию:

А ещё у нас в декабре курс по визуализации. Таня расскажет про теорию, я про Табло, а Дима Семьюшкин про d3.js.

1 ноября   Один раз увидеть   пример   табло

Возрастно-половая пирамида

Сегодня посмотрим на возрастно-половую пирамиду. Давно хотел сделать этот график. Наконец-то нашёл данные с 1995 года до 2050 (прогноз). Вот, что получилось:

Я использовал для визуализации прием Тафти — Small multiple. Он даёт классный обзор на все данные. Например, видно, что форма пирамид, почти одинаковая внутри континентов.

Если сгруппировать по континентам и запустить анимацию:

У России пирамида необычной формы и здорово видно, что наши мужчины живут значительно меньше женщин. Например, 80-90 летних женщин в 4 раза больше, чем мужчин.

Если включить абсолютные значения для оси икс видно, что по прогнозам Россия (RS на графиках) останется самой населенной странной в Европе.

Поиграть с прототипом здесь. К сожалению, из-за объема данных, всё очень тормозит. Ну, на то он и прототип.

22 октября   пример   табло

Billboard Hot 100

Сегодня был на джем-репетиции. Играл на басу, гитаре и клавишах:

Поэтому и анализ данных сегодня тоже про музыку. Я взял набор данных о хит параде Billboard Hot 100.

Вот, ещё одна из заготовок, которая у меня получилась. По клику на гифку, переход на прототип.

Цветом подсвечены пути песен, которые провели в чарте больше полугода. Фиолетовым — которые провели более полугода и попадали в топ 3 песен. Настраивая кол-во недель, которое песня провела в чарте, чтобы подсветить её на графиках можно найти множество закономерностей. Четко видно, что «долгоиграющих» хитов становиться всё больше, а скорость их взлета всё круче.

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

Есть песни, которые стартовали сразу из середины чарта, а есть которые долго поднимались на вершину и оставались в чате больше года:

Интересно, что до 1995 года, в чарте не было ни одной песни, которая задержалась бы в нем дольше чем на 52 недели (1 год). Прям видно паттерн небольших холмиков по 10-20 недель.

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

В источнике данные были с 1958 года, но, к сожалению, табло отказывается заливать такой объем данных на табло-паблик. Поэтому не влезли главные долгожители этого чарта — Beatels. И это очень странно, так как вообще говоря, таких ограничений нигде не описано.

2017   пример   табло

Сколько времени играют в игры

Сегодня ещё одна зарисовка не тему игр. Только подойдем не со стороны игр, а со стороны пользователей. Я взял набор данных о 10 165 пользователей сервиса steam. Вот, что у меня получилось:

2017   пример   табло

Обзоры игр с сайт ign.com

Сегодня решил посмотреть набор данных с kaggle.com о играх для компьютеров и приставок.

Вот что получилось, по клику в картинку реальный прототип. Оформить элементы управления, подписи и т. п. до конца не успел. Каждый график — распределение кол-ва играм по балам для определенного жанра и года. По оси икс — балы, по игрек кол-во игр. Графики состоят из кирпичиков игр, по клику переход на сайт с обзором игры.

По-моему получился удачный каркас — на одном экране уместилось 12 587 игр, 30 жанров, 20 лет. Видно много всего — распределение жанров по кол-ву игр, распределение игр по балам, наиболее жирные года. А главное можно быстро найти игры с наибольшим рейтингом, скачать и поиграть. =)

2017   пример   табло

Я спросил у Яндекса «Как…»

Альберто Кайро и Симон Роджерс в Google News Lab написали интересную статью, про поисковые запросы в гугл начинающиеся с How to.

Я решил повторить в миниатюре их эксперимент и собрал 40 тысяч записей из Яндекс Wordstat с похожими запросами.

Вот, что у меня получилось. Визуализация встроена прямо в статью — чтобы подгрузилась надо подождать. Кайфово смотреть в полноэкранном режиме:

Treemap и карта управляют друг другом и позволяют находить закономерности. Например, чаще всего в стране ищут «как быть счастливым», и это печально. В Москве такой запрос менее популярен, чем по стране, зато гораздо более часто спрашивают «как быть здоровым»:

А в Питере аномальный спрос на серил «Как я встретил вашу маму»:

И только в городе Усинске сначала хотят похудеть, а потом уже быть счастливыми:

Вообще с данными получилась какая-то белеберда. Мне плохо вериться, что реально вся странна спрашивает про счастье. Я вбивал в Wordstat слова без дополнительных операторов типа кавычек, скобок и восклицательных знаков. Если знаете как делать это более правильно — пишите в комментариях, буду благодарен за подсказки.

2017   пример   табло

Широкие и длинные таблицы

Часто данные хранятся в виде таблиц. Таблицы бывают «широкие» и «длинные».

Человеку чаще удобнее читать матричные таблицы, а вот Табло заточено для работы с длинными таблицами на входе. Если таблица широкая, то в Табло есть специальный функционал Measure Values and Measure Names, однако он не позволяет использовать все привычные функции Табло, которые отлично работают с длинной таблицей. Например, по-другому работает фильтрация, привязка цветов и т. п.

Пересобрать таблицу из широкого формата в длинный, можно разными путями:
в экселе, с помощью формул или скрипта,
в экселе, с помощью надстройки Power Query,
в экселе 2016 и новее, с помощью Get & Transform,
R, при помощи библиотеки reshape,
в табло, при помощи встроенной функции.

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

Посмотрим, как персоборать таблицу в «старом» экселе. Есть данные по кол-ву внутренней миграции в разные части Великобритании. В каждой строке откуда приехали иммигранты, куда и сколько людей каждой из религий. Нужно превратить это с длинную таблицу, где в каждой строке будет только название региона куда приехали, название религии и количество человек.

Чтобы просуммировать строки с одним регионом назначения, сделаем сводную таблицу и рассчиатем сумму для каждой религии:

Вставим эту таблицу как текст и поменяем названия столбцов:

Скачиваем и ставим надстройку Power Query — https://www.microsoft.com/en-us/download/details.aspx?id=39379
В экселе открываем её и задаем нужные преобразования:

После этого переименовываем столбцы и сохраняем результат:

Вуаля, наши данные готовы к работе с табло.

Видео, как обрабатывались данные — http://joxi.ru/YmEa0lVf068G3m

2017   обработка данных   табло

Разбор визуализации о количестве калорий в фастфуде

В этот раз рассмотрим визуализацию Нейтана Яу о количестве калорий в фастфуде.

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

Что не понравилось:
— Квадратики которые наслаиваются друг на друга.
— От верхних ресторанов далеко тянуться глазами до значений на оси.
— Нет возможности понять удельную калорийность продукта. Калории указаны на порцию, а не 100 грамм.
— Нет интерактивности и знакомых ресторанов. =)

Исправим всё выше перечисленное.

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

Скопировал данные в гугл таблиц:

Немного магии и форматирования и получил чистые данные:

Подключил данные к Табло:

Исправил те замечания, которые у меня были к исходной визуализации. Вместо квадратиков использую засечки и сделал переключатель [на порцию/на 100 грамм]. Ещё Кирилл Беляев помог мне подобрать цвета и подсказал с версткой.

Живой прототип — http://revealthedata.com/examples/fastfood/

В этом прототипе я использовал два приема работы с Табло. Первый позволил мне сделать переключатель оси калорийности, а второй — продублировать эту ось наверх.

Для создания переключателя я создал параметр, в котором хранится массив возможных осей:

Затем создал рассчитываемое поле и записал туда свитч-функцию. Далее использовал это поле как ось для графика:

Осталось только отобразить параметр и выбрать его внешний вид:

Для того, чтобы продублировать ось икс наверх, я ещё раз добавил поле в колонки. Затем использовал двойные оси и скрыл верхний заголовок. Таким образом, мы показываем точки друг над другом, но этого не видно, так как выбран один и тот же параметр. Это кстати позволяет делать ещё много разных интересных «хаков», но о них в следующий раз.

17, 18 и 19 июня пройдет наш курс по визуализации данных. На нём расскажу о том как использовать Табло для визуализаций и какие применяем при этом приемы и хитрости. Таня расскажет про алгортим визуализации, а Дима про d3.js. Будет интересно, обещаю!

UPD: Добавил поиск по блюдам.

2017   пример   разбор   табло