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

разбор

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

Пока это самый большой мой разбор. Написать его получилось только по частям, публикуя в телеграм-канале. Соавтор пересланного решения — Роман Бунин, без которого я провозился бы раз в 5 дольше, и не факт, что нашёл бы все удачные ходы.

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

Меня привлекла работа Стива Левина для Аксионс об оцифровке профессий, изменении зарплат и числа рабочих мест в США:

Привлекла внешней простотой, аккуратностью и тем, что в ней легко копаться. Закопавшись, понял, что она иллюстрирует только заголовок «People in highly digitized jobs earn more...» (Люди с высоко оцифрованный работой зарабатывают больше). Это видно из положения оранжевого и фиолетового облаков стрелок. Мне связь зарплаты с оцифровки очевидна, поэтому полез разбираться, что в визуализации ещё интересного.

Визуализация построена на данных исследования Брукингского института. Вместе с отчётом институт опубликовал визуализации. Можно посмотреть на те же данные под другим углом. Тут акцент на степень оцифровки, но совсем не показаны зарплаты:

В формате разбора не успею закопаться в исследование и детали всех визуализаций. Ограничусь работой Стива, то есть срезами оцифровки, зарплат и числа рабочих мест за 2002 и 2016 года. А география, образование, цифровые навыки и прочее останется за скобками.

Устройство и ошибки

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

Сначала — каркас. Тут два измерения со степенными шкалами: икс — средняя годовая зарплата, и игрек — число рабочих мест. Каждая стрелка — профессия. Основание стрелки — зарплата и число мест в 2012-м, остриё — в 2016-м.

Толщина штриха (и размер острия) кодирует число рабочих мест в 2016-м. Число рабочих мест закодировано дважды — положением по игреку и толщиной штриха. Двойное кодирование — рабочее решение, но тут оно выглядит случайностью. Возможно, если толщина штриха будет меняться вслед за изменением числа рабочих месть, падение и рост будут нагляднее.

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

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

Цвет отвечает за оцифровку профессии на 2016-й, у него три дискретные шага: слабая оцифровка, средняя и сильная. Вижу две проблемы:

  1. Цвета не ассоциативные и неравномерные по насыщенности — бежевый выглядит менее заметным на фоне ярко-оранжевого, кажется, что тут низшая степень оцифровки. В своей версии возьму оранжевый для высоких значений и голубой для низких. Теплота цвета будет отвечать за «температуру» оцифровки.
  2. К дискретности тоже вопросы. Она бывает свойством данных из-за низкой точности оборудования, например. Но в отчёте, на который ссылается визуализация, виден разброс:

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

Описывая недочёты, я думал, что их исправление улучшит визуализацию. Так сделаны некоторые прошлые разборы. Умозрительно понимал, что исправления не изменит общую картину, поэтому переделал полностью.

Cвой подход

Вспомнил работу Нью-Йорк Таймс о профессиях и соотношении полов на рынке труда среднего класса США в 1980 и 2012. C визуализацией данных тоже помогает насмотрелось, мозг сам вспоминает похожие форматы и структуры данных.

Иду за помощью к Роме, с которым работали в Лаборатории данных. Чтобы пробовать, нужны данные. Нашёл их на странице исследования на сайте Брукингского института:

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

Гипотеза 1.0. Показывать зарплаты графиком наклонов (slope chart) — так называют графики из примера выше. Разбить профессии на группы по одной оси, чтобы упорядочить кашу.

Гипотеза 2.0. Смотрю, какие ещё классифицированные графики работают с похожими «вводными» (блок «Input» справа). Показывать зарплаты горизонтальными гантелями (dumbbell plot).

Гантели не работают. По иксу — зарплата. Вершины гантели — зарплаты за 2002 и 2016 года. Но понять, где какой год не получится, потому что зарплата могла как расти, так падать:

А графики наклонов выглядят перспективно. Тут 2002 всегда слева. Сразу видно, что реальное падение зарплат только у двух профессий — в колонках с номерами 29 и 27:

Проработка

Пробуем для оцифровки градиент насыщенности, но с ним ничего не видно. Поэтому вернёмся к комплементарным цветам.

Оказалось, что в данных группы профессий заданы только цифрами (они и видны в колонках сверху). Нахожу соответствие на сайте Аксионс. Переворачиваем всё на 90°, чтобы нормально читать названия групп. Экспериментируем с цветом.

По иксу — зарплаты, шкала — равномерная. На такой шкале удобно смотреть, насколько быстрее растут ставки высокооплачиваемых специалистов.

А чтобы сравнивать рост ставок удобнее смотреть с логарифмической шкалой. Она показывает процентные изменения:

Логарифмическая шкала нагляднее показыват, что относительно самих себя зарплаты растут более-менее одинаково. Например, одним платят 1000 $, а другим — 5000 $. С инфляцией в США с 2002 по 2016 происходит вот что:

Чтобы труд не дешевел и не дорожал из-за инфляции, зарплаты должны меняться вслед за инфляцией. В 2002-м зарплат в 1000 должна превратиться в 1023,8 (1000×(100+2,38)/100), в 2003-м 1023,8 — в 1043. И так до 1366,4 $ в 2016-м. А зарплата в 5000 за это время превратится в 6832,1 $. В долях это одно и то же, а в долларах 366,4 $ против 1832,1 $.

С логшкалой видно, что зарплаты реагируют на изменения в экономике более-менее одинаково — углы наклонов полосок почти одинаковы. А те случаи, где они отличаются, справедливо привлекают внимание — это профессии, к которым «действительно» стали платить больше или меньше.

Ещё плюс логарифмической шкалы для этой визуализации — данные занимают меньше места по горизонтали.

Подробнее о шкалах читайте у Ромы.

Гипотеза 1.1.0. Агрегировать зарплаты по группам. Идея плохая — теряется куча данных и сглаживаются все аномалии:

Гипотеза 1.2.0. Показывать количество рабочих мест кругами на концах линий. Сначала смотрим на уровне групп. Картина непоказательная:

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

Гипотеза 1.2.2. Может, вместо кружков горизонтальные столбики?

В Табло так не получится. Откладываем идею, но смотрим, что вообще выходит из столбиков. Направление кажется перспективным.

Совмещаем их с заголовками и пробуем красить в зависимости от степени оцифровки. Разноцветные столбики плохо группируются в пары:

Убираем цвет. Сортируем по количеству рабочих мест:

Теперь столбики сливаются в одну массу. Придумываем красить их попарно цветом, который соответствует среднему между оцифровкой 2002-го и 2016-го. Это нечестные данные, потому что в промежуточные года данные были другими. Такие средние в целом не корректно считать, их нет в природе. Но тут оно помогает показать пары. К тому же у нас и так столбики — агрегация до групп, что тоже не очень корректно. В целом столбики показывают как дела на макроуровне, поэтому оставляем. Добавляем точные значения и подкручиваем цвета:

Чистовая вёрстка

Объясняю как устроена строка на примере первой группы. Рисую переключатель сортировки и поиск, который на деле был бы выпадающим списком с фильтром по введённым буквам:

Переворачиваю таблицу в подсказке, которую видно при наведении на линию. В оригинале значения для разных лет стоят в строке, а сравнивать цифры удобнее в столбиках:

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

Снова разбираемся с данными. Оказалось, что неправильно посчитали разницу. А спустя 2-3 попытки понимаем, что показывать разницу в процентах — плохая идея. Проценты считаются от исходного значения. Было 1000 мест, стало — 1100, это +10%. Если было 1100, а стало — 1000, это −9,1%. Количество мест одинаковое, а процентное изменение разное. Сравнивать такое некорректно. Вместо процентов, берём разы. Исхожу из того, что интересуют профессии, в которых были значительные изменения, поэтому предлагаю показывать кружок, только если изменение больше, чем в 1,5 раза.

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

Рома выложил прототип в Табло. Помимо описанного, там есть разбивка по образованию:

16 октября   визуализация данных   разбор   рынок труда

Экспресс-разбор визуализации налоговых ставок

В ноябре 2017-го Нью-Йорк Таймс выпустил работу Алисии Парлапиано и Адама Пирса об увеличениях и уменьшениях налоговых ставок в новом законопроекте Белого дома:

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

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

В заголовке авторы сразу выделяют категории цветом, и, видимо, чтобы это не приняли за декоративный элемент повторяют выделение во въезд. Подчёркивания в заголовке лезут в интерлиньяж нижней строки и похожи на ссылочные. По старой привычке кликнул в «Tax Cut», ожидая перехода или перемещения к нужной части статьи. Короче, убрал бы подчёркивание.

Столбикам предшествует такой экран:

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

Экспресс-разбор визуализации о пробках

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

Работа «Время в пути» Виллема Тулпа показывает автотрафик в Нидерландах за 1 ноября 2016-го:

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

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

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

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

Автор пишет, что участки без данных — серые, а с маленьким отклонением — синие (голубые). По-русски назвал бы «сизым». Эти цвета почти неразличимы на видео. Среднее отклонение красное, сильное — белое. Почему такой набор? Может, в честь Нидерландского флага, но зачем? Светофорный градиент сработает лучше.

Цвет и толщина линии — это плюс-минус понятно, а как работает смещение может быть не очевидно. Предполагаю, что так. Ровная дорога с датчиками:

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

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

Возможно, именно из-за этого сглаживания пришлось записывать видео — браузер не справлялся. Подчеркну, это только один день.

Автор ссылается на модель «Дорожных волн», которая объясняет поведение визуализированного типа пробок. И вот тут, мне кажется, главная ловушка. Классно же прям волнами показать эти «дорожные волны»:

Because of the displacement based on the deviation from the assumed normal travel time, the visualization shows clearly that traffic jams can move in waves. These waves move backwards, opposite of the driving direction of the cars.

Но визуализация получается сложная и не наглядная.

Как бы делал сам
Взял бы настоящую карту, например, Оупен-стрит-меп, чтобы проще было найти родную деревню и работало масштабирование. Увёл всё кроме дорог на задний план (высветлил и обесцветил). И красил бы участки дорог светофорным градиентом не отклоняя. А если нет отклонений, нормально сработают дороги естественной толщины. Это будет похоже на пробки в любом картографическом сервисе. И это хорошо, формат проверен и легко считывается.

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

Разбор карты этнографического музея

Сначала — контекст. Круговая панорама для этого лучше описаний:

Музей — классный, пример остальным этнографическим музеям. На 84 гектарах лесопарка собраны 118 построек 17...20 веков. Гуляешь по парку и впитываешь историю. Или не впитываешь, всё равно пейзаж интереснее, чем в обычном парке: домики, дорожки, мельницы и музейная чистота. Поесть тоже дают, как в парке. На праздники устраивают реконструкции. Открыт для посетителей удивительно давно — в 1932-м, основан 1924-м.

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

Утвари внутри домов немного, но образцы выразительные. Телефон сел, поэтому покажу только «сундук» из бревна. А самое крутое там — купальня с устройством для ингаляции.

К разбору. На входе дают листовки формата А3 с картой музея, фотографиями и справочной информацией. Ориентироваться на такой большой территории с картой удобнее. Вдвойне досадно, когда полезный материал крутого музея оформлен плохо. Оригинал замялся в кармане:

Переделываю сторону с картой. Шесть главных проблем и их решения:

1. Чтобы рассматривать А3 нужен стол или обе руки. Чуть полегче, если согнуть пополам. Но тогда карту и легенду не видно одновременно — приходится помнить какие-то абстрактные цифры пока крутишь листовку. Это главная проблема. Решение понятное — расставить подписи рядом с объектами, но трудоёмкое, на него ушло основное время. Пока расставлял, раза три думал, что не сработает. Понимаю, почему авторы не стали усложнять себе жизнь и восхищаюсь ребятами, которые делали советские атласы. Не обошлось без уловок.

  • Чтобы разместить такую кучу текста, я погасил всю графику, кроме строений. Так вытянул на передний план домики и освободил место для текста. Это называют информационными слоями.
  • Часть зданий объединены в хозяйства и деревни. Часть хозяйств перевезена целиком, и другая собрана из нескольких мест с одной окрестности. Делаю это деление на уровне пятен и подписей жирным. В таких группах не подписываю каждое здание, а собираю подписи в блок с выноской. На каждом здании висит табличка с информацией идентичной листовке. Дойдя до хозяйства, интереснее живые строения, чем карта. Читают таблички только тех строений, что приглянулись. Это решение стоит тестировать. Если не то — вернуть цифры. И всё равно подписи рядом с объектами и собранные в блоки будут считываться проще.
  • В оригинале было семь строений помеченные «not re-erected» (нереконструированные), номера 35, 62, 71, 74, 77, 109 и 119. У меня их нет. В жизни нереконструированные строения, на которые обратил внимание, были грудой брёвен. К ним не подойти из-за высокой травы, табличек тоже не заметил
  • Ещё в оригинале указаны даты добавления в коллекцию музея. Пользы от них не увидел, ощутил вред — сбивался и путался между двумя датами, вдвойне тяжко, когда 1930-й у одного здания — дата постройки, а у другого —дата добавления в музей. У меня этих дат тоже нет.
  • Номера 122, 123 и 124 оставил сносками.

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

3. Шрифт Бенгет (ITC Benguiat) не подходит. Он лучше работает, как акцидентный. В небольшом кегле с такими межстрочными, читать его становиться совсем больно. Благодаря выразительной форме считывать цифры на карте тоже не удобно. И по стилю шрифт не подходит. Это антиква, основанная на шрифтах Модерна. Даты возведения и характер построек не о Модерне никак. Рабочее решение подсказывает сайт музея: характерные заголовки и читаемый текст спокойным гротеском. Я набрал основной текст системной Тахомой. Ещё лучше сработает шрифт, более читаемый при той же площади.

4. Цифры плохо объединяются в пятна, из-за чего сложно определять границы территорий народностей. Мои пятна решают задачу не полностью.

Моменты, которые ушли сами при решении предыдущих пунктов.

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

В итоге карту без изменений можно печатать на А4 для острозрячих, и на А3 для остальных:

Добавка. Отдельная беда с географией. Живу в Латвии пять лет и знаю, где жили какие народности, а местные тем более. Эти названия историко-культурных областей используются до сих пор. Поэтому гуляя по музею, я не понял принцип расположения народностей.

Когда в моей версии листовки появилась карта страны, стало проще соотносить географию страны и музея. Для неместных упрощу, повернув:

Часть народностей «живут на своих местах», Рига в заливе, у земгалов нет выхода к воде, Латгалия и Курземе по краям.

Главное отличие — Латгали и Курземе поменены местами. Уверен, что доставал бы карту в два раза реже, будь они на местах. Работал бы принцип естественного соответствия (см. Нормана).

Минутка политики. Пытался объяснить себе эту невнимательность к родным краям. Допустим, география в порядке. Тогда, входя в музей через главный вход (у парковки снизу), посетитель встречает Латгалию, с которой у латышей неоднозначные отношения. А одним из первых хозяйств будет русское, потому что такие встречались на востоке Латвии (см. наверху карты). Отношения латышей и русских тоже неоднозначные. Поэтому проще всю эту неоднозначность задвинуть подальше. Тут я сильно надеюсь, что ошибаюсь.

2017   Земля   карта   Латвия   музей   разбор

Разбор приложения с задачами по математике для умственного счёта

Лет 5-6 назад, я узнал о приложении «Въ умѣ», которое советую, как тренировку для мозга.

Это набор из 1001 задачи для умственного счёта, которые составил Сергей Рачинский. Впервые задачи вышли в виде книги «1001 задача для умственного счёта. Пособие для учителей сельских школ» в 1891 году. Эти задачи решали крестьянские дети начальной и средней школы. При жизни автора книга переиздавалась три раза и стала известна по всей России.

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

Счёт в уме требует неслабой концентрации и тренирует её. Заметил, что 5 лет назад фокусировался лучше и решал быстрее. Сейчас часто сбиваюсь, забываю значения из условия задачи и отвлекаюсь.

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

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

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

Самое важное — содержание задачи — набрано мелким кеглем со слишком узкими межстрочными и излишне большой длиной строки. Хорошо читается только номер задачи. Под текстом бывают дополнения оформленные серым курсивом. Там пишут как условия задачи, так и не влияющие на решение пояснения. Из-за одинакового внешнего вида в половине случаев приходится читать лишнее.

У приложения только горизонтальная ориентация и клавиатура на всю длину экрана, из-за этого неудобно вводить ответы одной рукой, а на телефонах с диагональю больше 4,5 дюймов — невозможно. Основной сценарий у приложения такой: прочитал задачу, решил, ввёл. Для первых двух действий держать телефон двумя руками не нужно, а для третьего из-за горизонтальной ориентации — обязательно. Чтобы помногу раз не опускать и поднимать вторую руку, телефон проще держать двумя руками. А такой хват явно избыточный для этого приложения.

В разделе «О приложении» — бардак с вёрсткой:

В списке задачи разбиты по 70 на экран — не самое удобное число, чтобы на него делить, когда хочешь добраться к 495 задаче.

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

Отдельная проблема — кнопка «ѣ». Понять, что за ней невозможно. А там живёт встроенная покупка:

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

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

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

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

Шафл задач и ссылки на авторов убрал в настройки. Работа с приложением похожа на чтение. Решать, как и читать, могут в разных условиях и с разной остротой зрения — одному будет слишком ярко, другому всё ещё мелко. Поэтому добавил в настройки темы и регулировку кегля. А когда разобрался со списком задач, понял, что классно показывать в настройках и мини-статистику:

Рассказ о приложении уместил на один экран с прокруткой:

Список задач тоже собирал в один экран с прокруткой и дополнил его общим видом. На нём наглядно видно, что сложность задач нарастает:

Собрал всё это в 2-минутный ролик:

Если хотите, чтобы помог с этим или другим приложением, пишите на почту kirill@kipo.name. Если интересны детали, задавайте вопросы (лучше тоже на почту).

P. S. Разбор визуализаций пока на паузе, вместо них планирую писать разборы похожие на этот.

Ранее Ctrl + ↓