Все материалы
Бизнесгайдстарт

Визуализация данных: принципы, ошибки и инструменты

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

КейсПрактика27 сентября 2026 г.16 мин

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

Коротко: что делает визуализацию полезной

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

«Визуализация данных» — не обязательно интерактивный дашборд. Это может быть один график в записке, таблица с акцентами, карта или серия маленьких графиков. Рабочее правило одинаково: если после выключения цвета читатель не может понять величину и период, дизайн скрывает данные. Для выбора конкретного типа под вопрос есть отдельная шпаргалка; здесь разбираем, как уже выбранный тип сделать честным и понятным.

Сначала договоритесь, что измеряет один знак

В учебной базе «Авиаперевозки» одна строка bookings — бронирование, total_amount — его полная сумма в рублях. Мы берём полную неделю 3–9 августа 2026 года по московскому времени: 42 561 бронирование на 3 377 874 800 ₽. Это стоимость оформленных бронирований, а не чистая выручка: в наборе нет достаточных данных о возвратах и признании. Семь дневных сумм складываются в недельную.

Для линии одной точкой станет день с суммой. Для сравнения типов броней одной колонкой — группа «один билет» или «два и больше» после агрегации tickets до ключа брони. Для распределения одной наблюдаемой величиной станет полная сумма отдельной брони. Разные зерна требуют разных запросов; если провести один JOIN на всю страницу и надеяться, что каждый график сам поймёт смысл строки, сумма может умножиться. Сначала составьте контрольную таблицу по каждому графику.

Контракт трёх видов графика
ГрафикОдин знакАгрегацияКонтроль
ДинамикаОдин деньSUM(total_amount) по датеСумма дней = сумма недели
СоставТип брониСначала билеты по book_refСумма типов = сумма недели
РаспределениеОдна броньCOUNT по диапазону суммыСумма частот = 42 561

Почему глаз лучше сравнивает положение и длину

Работа William Cleveland и Robert McGill «Graphical Perception: Theory, Experimentation, and Application to the Development of Graphical Methods» опубликована в Journal of the American Statistical Association в 1984 году, том 79, № 387, страницы 531–554. В экспериментах они изучали точность считывания разных визуальных кодировок и обосновали преимущество сравнения положения на общей шкале над оценкой угла и площади для задач количественного чтения. Первичная публикация и доступный авторский PDF позволяют проверить формулировку.

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

У первоисточника есть важное ограничение: задача эксперимента — насколько точно люди оценивают числовые отношения по графическому знаку. Это не полный ответ на вопрос, какой график быстрее объяснит сложную историю или что запомнится через неделю. Поэтому правило про общую шкалу применяем к случаю близких денежных величин; в иных задачах важны порядок, контекст, язык подписей и доступность. Опираясь на одно исследование, нельзя объявить «все круговые графики запрещены» или «цвет бесполезен». Сильный дизайн соединяет точное считывание и нужное управленческое действие.

Точные значения для сверки
ГруппаБрониСумма, ₽
1 билет28 0111 586 128 300
2+ билета14 5501 791 746 500
Сумма бронирований по типу, млн ₽

Общая нулевая шкала позволяет сравнить длину столбцов. Точные рубли указаны ниже.

Млн ₽

Уберите то, что не участвует в ответе

Дополнительная сетка, 3D, градиенты, тени и десять цветов могут увеличить работу глаза, не добавив информации. Проверьте каждый элемент вопросом: читатель по нему узнаёт величину, период, различие, ограничение или действие? Если нет, уберите. Сетку оставьте достаточно лёгкой, чтобы она поддерживала считывание шкалы. Для небольшого числа значений лучше подписать числа рядом с ними, чем добавлять ось с множеством делений.

Сокращение графики не означает удаление контекста. Подпись «млн ₽» и неделя 3–9 августа обязательны; едва заметная подпись источника тоже нужна. Удалять контрольные детали, чтобы макет казался чистым, опасно. Разница между шумом и контекстом проверяется вопросом пользователя: сможет ли он повторить расчёт и правильно назвать единицу?

Особенно опасна декоративная точность. Если исходные суммы округлены до миллионов на графике, не выводите четыре знака после запятой в подсказке, будто метод измерения даёт такую точность. И наоборот, не округляйте малую разницу до одинаковых значений: два столбца «1,6 млрд ₽» могут скрыть важные 205 млн ₽. Выберите масштаб подписи по величине, которую сравнивают, и оставьте точные рубли в таблице проверки. Удаление лишнего — это работа над иерархией, а не просто белое пространство.

Подписывайте прямо там, где человек смотрит

Если две линии имеют разные цвета, легенда в стороне заставляет постоянно переводить взгляд. В конце каждой линии можно поставить короткую подпись с названием серии и последним значением. У столбцов с двумя категориями можно оставить имена под столбцами. Если серия одна, легенда «сумма» дублирует заголовок и её лучше убрать. Аннотация на точке 9 августа — «509,63 млн ₽, максимальный день недели» — объясняет, почему на неё стоит посмотреть.

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

Динамика суммы с подписью единицы, млн ₽

Сумма оформленных бронирований, 3–9 августа 2026 года, МСК. Максимум недели — 9 августа.

Млн ₽

Заголовок-вывод вместо названия поля

«Сумма бронирований по дням» честно описывает график, но читателю всё равно приходится искать смысл. Если вопрос страницы — движение внутри недели, заголовок может быть «К воскресенью сумма броней достигла 509,63 млн ₽» с подписью «3–9 августа, Москва». Такой заголовок указывает наблюдение, которое график подтверждает. Он не должен превращаться в ложную причинную историю: «Акция подняла продажи» не следует из семи точек без сравнения и проверки акции.

Лучше готовить заголовок после расчёта, а не до него. Если анализ не нашёл сильного изменения, так и пишите: «Сумма распределена по неделе без резкого скачка». Высказывание должно оставаться верным при повторной загрузке данных; на живом дашборде динамическую аннотацию нужно рассчитывать из тех же фильтров, что и график. Иначе заголовок прошлого периода спорит с новым изображением.

Цвет кодирует смысл, не очередь в палитре

Назначьте семантику заранее: основной ряд — нейтральный синий, сравниваемый или выделенный — янтарный, ошибка загрузки — отдельно обозначенное предупреждение. Один и тот же сегмент должен сохранять цвет на всех экранах. Если оттенки назначаются случайно в каждом графике, читатель тратит внимание на перепривязку легенды. Цветовая шкала должна иметь различимые ступени и в светлой, и в тёмной теме.

Не полагайтесь на красный/зелёный как единственный носитель смысла: часть читателей различает их плохо, а даже видящему цвет нужно знать величину и порог. Подпишите «ниже плана на 12%» и покажите утверждённый план, вместо одиночной красной карточки. Для непрерывной меры используйте последовательную шкалу, для отклонения вокруг нуля — расходящуюся с ясным центром; не смешивайте эти задачи. Цвет не должен скрывать отсутствие значения.

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

Плохо / честно: обрезанная ось меняет впечатление

Представьте столбцы дневных сумм: 3 августа 452,16 млн ₽, 9 августа 509,63 млн ₽. Если нарисовать их от 450 млн ₽, второй будет выглядеть десятки раз выше первого, хотя отношение значений примерно 1,13. Столбцы сравнивают длину от общего начала, поэтому нулевая точка нужна. Пара SVG ниже использует одни и те же значения и показывает, как выбор шкалы меняет зрительный вывод.

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

Перед показом пары попросите читателя оценить без чисел, во сколько раз второй день больше первого. На обрезанной версии люди часто отвечают по отношению высот видимых столбцов, хотя математически 509,63 / 452,16 ≈ 1,13. Именно эта подмена зрительного отношения числовым может вызвать непропорциональную реакцию на планёрке. Честная версия допускает маленькую видимую разницу; подпись +57,48 млн ₽ или +12,7% даст точное сообщение без искажения геометрии. Если график всё равно кажется слишком «плоским», возможно, для этого вопроса лучше таблица с выделенной дельтой.

Два столбчатых графика одинаковых дневных сумм: ось от нуля и обрезанная ось от 450 млн рублей
Одинаковые данные, разное впечатление. Для сравнения длины столбцов нужен общий ноль; точные значения 452,16 и 509,63 млн ₽.

Плохо / честно: разный масштаб соседних графиков

Если два подразделения сравниваются по одинаковой мере, разные диапазоны осей делают маленькое изменение одного похожим на большой скачок другого. Решите заранее, нужно ли сравнивать абсолютные уровни или форму внутри каждого ряда. Для уровня используйте общую шкалу и одинаковую единицу; для формы можно нормировать к базе, но тогда подпишите «индекс, первый день = 100», а не «млн ₽».

В нашем примере рядом можно поставить сумму и число бронирований: сумма выросла на 8,39% к прошлой неделе, число — на 8,53%. На одной шкале Y рубли и брони не сравнить. Два маленьких графика с одинаковым временем и отдельными подписанными осями честнее одной диаграммы с двумя осями Y, где диапазонами можно заставить линии «совпасть». Это защищает от ложного вывода о причинной связи.

Пара графиков перед публикацией
Если сравниваемЕдиная настройкаЧего избегать
Абсолютные уровни одного показателяОдинаковая единица и масштабНезаметно разные оси
Изменение относительно своей базыИндекс 100 в стартовой точкеНазвать индекс рублями
Разные меры: сумма и числоОбщее время, разные подписанные панелиДве оси без предупреждения

Плохо / честно: накопленный итог вместо периода

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

Дневные значения 3–9 августа: 452 158 300, 467 666 600, 479 377 800, 485 604 400, 490 795 600, 492 638 500 и 509 633 600 ₽. Их сумма — 3 377 874 800 ₽. На этих данных и дневной ряд растёт, но это свойство конкретной недели, а не доказательство пригодности накопленной линии для ежедневного мониторинга. Если в другой неделе один день упадёт, накопленный ряд всё равно может пойти вверх.

Это касается и накопленных процентов. Если каждую неделю прибавлять долю активных пользователей, сумма может превысить 100%, потому что человек активен в нескольких неделях. Накопить можно событийный объём при определённом окне; уникальных людей нужно пересчитывать по объединённому периоду. Похожая ловушка появляется на финансовых графиках, когда накопленную сумму всех оформленных заказов называют «поступлениями»: это две разные меры. Текст под графиком должен содержать правило накопления и границу периода.

Что покажет одна и та же неделя
Мера3 августа9 августаВопрос
За отдельный день452 158 300 ₽509 633 600 ₽Что произошло в день?
Накоплено с 3 августа452 158 300 ₽3 377 874 800 ₽Сколько собрано с начала?

Плохо / честно: средняя скрывает хвост

Средняя сумма брони за неделю — 79 365,49 ₽, медиана — 56 000 ₽. Разница велика: крупные брони тянут среднюю вверх. Максимум 1 062 800 ₽, минимум 3 400 ₽. Если руководитель спрашивает «сколько обычно стоит бронь», одну среднюю показывать недостаточно; добавьте медиану и распределение. Если он рассчитывает общий денежный объём, средняя и число броней полезны, поскольку их произведение даёт сумму.

Не выбирайте медиану потому, что она «красивее». Уточните решение. Для прогнозирования выручки может быть нужна сумма, для оценки типичного клиента — медиана, для риска крупных транзакций — хвост и верхние квантили. Таблица ниже позволяет повторить вывод по нашим данным, а не по условному набору из пяти чисел.

В запросе средняя — арифметическое AVG(total_amount), медиана — результат сортировки всех 42 561 сумм и выбора центрального наблюдения. Не вычисляйте медиану как «среднее двух средних» сегментов; она так не агрегируется. Большой разрыв средней и медианы не означает ошибку данных: он может быть свойством ассортимента, когда часть броней включает несколько билетов и дорогие маршруты. Сначала проверьте отдельные большие суммы, а затем решайте, нужно ли ограничивать визуальную ось, показывать квантили или вынести хвост отдельно. Удалить выброс ради красивой картинки нельзя без правила качества.

Сумма брони: центр и края
МинимумМедианаСредняяМаксимумN
3 400 ₽56 000 ₽79 365,49 ₽1 062 800 ₽42 561
Число броней по диапазонам суммы

Диапазоны разной ширины, последний открыт: это частоты порогов, не плотность распределения.

Брони

От таблицы к графику: контрольная последовательность

Сохраните текст вопроса и SQL до дизайна. Для дневного ряда выполните запрос GROUP BY CAST(book_date AS DATE), отсортируйте даты, проверьте 7 строк и сумму. Для состава билетов отдельно посчитайте число строк после JOIN, сверив его с 42 561; никакой график не исправит удвоенные деньги. После этого создайте контрольную таблицу с точными рублями и только затем округляйте подписи до миллионов. Если точка не совпала, возвращайтесь к запросу, не меняйте ось для маскировки.

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

Полезно сохранять рядом с графиком небольшой «паспорт»: владелец, версия определения, SQL или модель, дата последней проверки, задержка обновления и известные ограничения. Это особенно важно для статичных изображений в презентации: они быстро отрываются от источника. Если спустя месяц пришла корректировка к прошлой неделе, паспорт подскажет, почему число в старом PDF отличается от живого экрана. Для интерактивной панели добавьте доступ к детальной таблице или пояснению метрики, а не только кнопку скачивания изображения.

Проверяйте изображение и без интерактивности: в поисковой выдаче, письме или скриншоте пользователь не видит подсказку при наведении. Главное значение, период, единица и ограничение должны оставаться на самом графике или в непосредственной подписи. Альтернативный текст для изображения должен описывать вывод, а не говорить «график». Для SVG с таблицей чисел рядом достаточно краткого описания формы и причины, почему её показали.

sqlКонтроль одной строки на день
SELECT CAST(book_date AS DATE) AS day, COUNT(*) AS bookings,
       SUM(total_amount) AS amount_rub
FROM bookings
WHERE book_date >= TIMESTAMP '2026-08-03'
  AND book_date < TIMESTAMP '2026-08-10'
GROUP BY 1 ORDER BY 1;

Инструменты: выбирайте по источнику и читателю

Для быстрой проверки десятков строк годится таблица и простой график в Excel. Для воспроизводимого исследования аналитик может построить визуализацию в Python; подробный разбор Matplotlib и Seaborn живёт отдельно. Если экран должен обновляться и открываться нескольким ролям, потребуются подключение, модель, права и владелец BI. DataLens, Power BI, Superset и Metabase решают разные организационные задачи; сами по себе они не определяют метрику.

Таблица ниже — критерии для выбора, а не рейтинг. В официальных документах DataLens, Power BI, Superset и Metabase описаны подключения, визуализации и публикация. Страницы проверены 27 сентября 2026 года. Тарифы, наличие функций и ограничения доступа могут меняться; перед внедрением проверяйте актуальные условия.

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

Где визуализировать этот пример
СитуацияСредаПочемуОграничение
Разовая проверкаExcelБыстрый график и сводкаРучное обновление и версии
Воспроизводимый анализPythonГибкий код и экспортНужно поддерживать скрипт
Общий экранBI-платформаПрава, фильтры, публикацияНужны модель и владелец

Ошибки, вопросы и следующий шаг

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

Какая визуализация лучше для большого числа категорий? Отсортированная таблица или столбцы с разумным отбором. Можно ли начинать ось линии не с нуля? Да, если диапазон ясен и подписи не преувеличивают вывод. Как показать точные числа? Добавить таблицу или подписи значений. Нужен ли BI для одного графика? Нет; нужен проверенный расчёт и формат, которым пользуется адресат.

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

Продолжить чтение
Вся библиотека