Продолжая тему конструирования каркасов, расскажу о линейных графиках.
Линия на линейном графике — это всегда совокупность точек, соединённых в определённом порядке. Самый простой пример такого графика — это таймлайн:
Частицей данных в этом случае будет позиция из заказа — определённое наименованием (например, яйцо С0) с конкретной ценой и датой покупки. Очевидно, что когда мы строим динамику цены по месяцам, в одной точке «объединяются» несколько таких позиций по заказам этого месяца, и цена усредняется.
Более точный график с разбивкой до частицы данных будет выглядеть так:
Тут отчётливо видны моменты, когда цена менялась, например, что со 119 до 129 руб. яйца подорожали между 4 и 14 сентября 2023 года. С другой стороны, точек стало очень много, такая детализация не всегда оправданна.
Нет ничего плохого в том, чтобы усреднить значения, если тренд важнее деталей. Главное, понимать, как посчитаны обобщённые значения, где за ними «прячутся» исходные параметры частицы данных, и на что влияет усреднение. В примере с ценой яиц, детальный график проявил чёткие ступеньки постепенного роста цены, тогда как на исходном графике по месяцам они «стёрлись» за счёт усреднения старой и новой цены внутри одного месяца.
Давайте на этом же примере разберём разницу между столбиковой и линейной диаграммой. Кажется, что в случае с таймлайном, они взаимозаменяемы, ведь можно цену изобразить столбиками?
Запретить я вам, конечно, не могу, но делать так не советую. И вот почему. Столбики по сути своей — это такие стопки, сложенные из данных. Их важная особенность в кумулятивности, поставив столбики друг на друга, мы получим новый столбик, который передаст своей высотой новый параметр — сумму исходных столбиков. Легко заметить, что в случае с ценой это правило не работает: если мы сложим цены из разных заказов, никакого осмысленного параметра у нас не получится. Правильнее относиться к цене, как к засечке на оси стоимости. Засечки не суммируются, они усредняются:
Получается, что для вычисляемых и некумулятивных параметров лучше подходят засечки и линии. А для кумулятивных, например, для количества купленных упаковок яиц или потраченных на яйца денег лучше подойдут столбики, как бы сложенные из этих упаковок и рублей:
На нижнем графике я выделила каждый заказ и подписала, сколько упаковок в нём было, чтобы показать, как отдельные заказы складываются в общее количество съеденных за месяц яиц. Именно эти заказы формируют среднюю цену сверху.
Ещё одна важная особенность линейного графика в том, что на нём можно показать несколько линий, которые будет удобно сравнивать. Вот, например, сравнение цен на мои любимые наименования питьевой воды:
Видно, что Петроглиф не просто дешевле двух других, да ещё и очень долго не дорожал, и только в этом году подрос на 20 руб. У Боржоми хорошо виден резкий пик весной 2022‑го года, когда её временно перестали возить в Россию. А Эвиан за четыре года подорожал в общей сложности на 100 руб., прибавив половину стоимости!
Добавим на этот график информацию по скидкам:
Разные наименования мы показали цветом, а разные параметры — типом линий. Получился довольно информативный и многомерный график, который в частности показывает, что Боржоми я беру только со скидкой. А на Петроглиф скидок не было ни разу за всю историю моих покупок.
Разницу между параметрами на линейных графиках можно показывать заливкой:
Это ещё одна особенность, которая очень логично «ложится» на линейный график, и которая не сработает для столбиков.
Таймлайн — простейший пример линейного графика, но не единственно возможный. Приведу ещё несколько примеров графиков, на которых некая сущность «рисует» свой путь в виде линии внутри заданных измерений:
На этом графике несколько стран показаны в пространстве параметров продолжительности жизни и фертильности, с 1980‑го до 2009‑го года. Каждая страна проходит свой исторический путь: кто‑то стремительно меняется, кто‑то топчется на месте. В основе графика лежат идеи с легендарного выступления Ганса Рослинга. Если вы его не видели, обязательно посмотрите!
Ещё один график, который показывает изменения состояния двух параметров во времени, на этот раз речь о безработице и доступности рабочих мест на рынке труда в США:
Каждая точка — состояние рынка труда в определённый момент времени, описанное двумя параметрами: долей открытых вакансий и долей безработных, которые не трудоустроены более полугода. Все точки соединены в траекторию движения рынка труда. Авторы обращают наше внимание на характерную форму, напоминающую хвост скорпиона — она показывает, как падение доли свободных рабочих мест приводит к постепенному росту долгосрочной безработицы, и как при открытии новых рабочих мест рост безработицы сперва замедляется и только через некоторое время разворачивает и начинает падать.
Есть ещё формат ранк‑чартов, когда по горизонтальной оси временной параметр, а по вертикальной — дискретная ось мест в рейтинге, и в этом пространстве движутся участники соревнований:
На этой визуализации видно, как победитель Мо Фара, упал в районе четвёртого километра, и его обогнало большинство участников, но это не помещало ему прийти к финишу первым.
Или вот, например, в результате выбора в качестве осей расстояния между станциями на маршруте Париж‑Лион и времени суток, поезда, проходящие этот маршрут, превратились в ломаные линии. Чем не линейный график?
Подводя итог, линейный график — это график, который показывает состояния одного или нескольких объектов в осях соответствующих параметров, соединённые в определённом порядке. Чаще всего одна из осей линейного графика — временная, и точки тоже соединены хронологически. Но бывает и иначе, на осях могут быть любые параметры, как непрерывные, так и дискретные.
P. S. Это был совет о визуализации данных. Хотите узнать всё о таблицах, графиках, диаграммах, картах, схемах и дашбордах? Присылайте вопросы.