Продолжая тему конструирования каркасов, расскажу о линейных графиках.

Линия на линейном графике — это всегда совокупность точек, соединённых в определённом порядке. Самый простой пример такого графика — это таймлайн:

Динамика цены на яйца C0 из Лавки по месяцам, на основе датасета о моих покупках, собранного ИИ

Частицей данных в этом случае будет позиция из заказа — определённое наименованием (например, яйцо С0) с конкретной ценой и датой покупки. Очевидно, что когда мы строим динамику цены по месяцам, в одной точке «объединяются» несколько таких позиций по заказам этого месяца, и цена усредняется.

Более точный график с разбивкой до частицы данных будет выглядеть так:

Динамика цены на яйца C0 из Лавки по дням

Тут отчётливо видны моменты, когда цена менялась, например, что со 119 до 129 руб. яйца подорожали между 4 и 14 сентября 2023 года. С другой стороны, точек стало очень много, такая детализация не всегда оправданна.

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

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

Динамика цены на яйца C0 из Лавки по месяцам в виде столбиков

Запретить я вам, конечно, не могу, но делать так не советую. И вот почему. Столбики по сути своей — это такие стопки, сложенные из данных. Их важная особенность в кумулятивности, поставив столбики друг на друга, мы получим новый столбик, который передаст своей высотой новый параметр — сумму исходных столбиков. Легко заметить, что в случае с ценой это правило не работает: если мы сложим цены из разных заказов, никакого осмысленного параметра у нас не получится. Правильнее относиться к цене, как к засечке на оси стоимости. Засечки не суммируются, они усредняются:

Динамика цены на яйца C0 из Лавки по месяцам в виде засечек

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

Динамика цены и кол‑ва купленных упаковок яиц C0 из Лавки

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

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

Видно, что Петроглиф не просто дешевле двух других, да ещё и очень долго не дорожал, и только в этом году подрос на 20 руб. У Боржоми хорошо виден резкий пик весной 2022‑го года, когда её временно перестали возить в Россию. А Эвиан за четыре года подорожал в общей сложности на 100 руб., прибавив половину стоимости!

Добавим на этот график информацию по скидкам:

Разные наименования мы показали цветом, а разные параметры — типом линий. Получился довольно информативный и многомерный график, который в частности показывает, что Боржоми я беру только со скидкой. А на Петроглиф скидок не было ни разу за всю историю моих покупок.

Разницу между параметрами на линейных графиках можно показывать заливкой:

Это ещё одна особенность, которая очень логично «ложится» на линейный график, и которая не сработает для столбиков.

Таймлайн — простейший пример линейного графика, но не единственно возможный. Приведу ещё несколько примеров графиков, на которых некая сущность «рисует» свой путь в виде линии внутри заданных измерений:

Remixing Rosling. Truth and Beaty

На этом графике несколько стран показаны в пространстве параметров продолжительности жизни и фертильности, с 1980‑го до 2009‑го года. Каждая страна проходит свой исторический путь: кто‑то стремительно меняется, кто‑то топчется на месте. В основе графика лежат идеи с легендарного выступления Ганса Рослинга. Если вы его не видели, обязательно посмотрите!

Ещё один график, который показывает изменения состояния двух параметров во времени, на этот раз речь о безработице и доступности рабочих мест на рынке труда в США:

The Rise of Long‑Term Joblessness. Bloomberg

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

Есть ещё формат ранк‑чартов, когда по горизонтальной оси временной параметр, а по вертикальной — дискретная ось мест в рейтинге, и в этом пространстве движутся участники соревнований:

Визуализация олимпийской гонки на 10 километров в 2016. New York Times

На этой визуализации видно, как победитель Мо Фара, упал в районе четвёртого километра, и его обогнало большинство участников, но это не помещало ему прийти к финишу первым.

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

Графическое расписание движения поездов Париж‑Лион. Книга Visual Display of Quantitative Information, стр. 31 и 116

Подводя итог, линейный график — это график, который показывает состояния одного или нескольких объектов в осях соответствующих параметров, соединённые в определённом порядке. Чаще всего одна из осей линейного графика — временная, и точки тоже соединены хронологически. Но бывает и иначе, на осях могут быть любые параметры, как непрерывные, так и дискретные.

P. S. Это был совет о визуализации данных. Хотите узнать всё о таблицах, графиках, диаграммах, картах, схемах и дашбордах? Присылайте вопросы.

Визуализация данныхАлгоритм ΔλКаркасФормат: таймлайнФормат: линейный график
Отправить
Поделиться
Запинить

Рекомендуем другие советы