Data-ink ratio и борьба с chartjunk
Каждый штрих на графике должен нести данные — остальное стирайте.
Data-ink ratio (по Эдварду Тафти) — доля «чернил» графика, которая приходится на собственно данные, относительно всех чернил. Идеал — приближать её к единице, удаляя всё, что не несёт информации.
Идея Тафти
Эдвард Тафти в книге «The Visual Display of Quantitative Information» сформулировал принцип: графика существует ради данных, а не ради украшений. Всё, что нарисовано, делится на «чернила данных» (точки, линии измерений) и «не-данные» (фоновая заливка, тяжёлые рамки, лишние линии сетки, тени, 3D). Тафти призывает максимизировать долю первого: стирайте не-данные, стирайте избыточные данные, стирайте, стирайте.
Формально: $\text{data-ink ratio} = \dfrac{\text{чернила на данные}}{\text{все чернила графика}}$. Чем ближе к 1, тем «честнее» график расходует внимание читателя. Это не призыв к аскетизму ради аскетизма — лишние элементы реально мешают: они конкурируют за внимание с данными и замедляют чтение.
Что такое chartjunk
Тафти ввёл термин chartjunk — визуальный мусор, не несущий информации: муаровые заливки, декоративные 3D-эффекты, картинки на фоне, тяжёлые сетки, дублирующиеся подписи. Классический пример — столбчатая диаграмма, где столбики сделаны объёмными бочками с тенями: данных столько же, сколько в плоских столбцах, но «чернил» в разы больше.
Перегружено (chartjunk) Очищено (high data-ink) +========================+ |::::::::::::::::::::::::| 40| ___ |:::::###:::::::::::::::| 30| ___ | | |:::::###::::::###:::::| 20| | || | |:::::###::::::###:::::| 10| | || | ___ |##############::::::::| 0|__|__||__||__| +========================+ A B C тени, рамка, заливка только данные
Lie factor: измеряем обман
Тафти также предложил lie factor — меру искажения: $\text{lie factor} = \dfrac{\text{размер эффекта на графике}}{\text{размер эффекта в данных}}$. Если значение выросло на 50 %, а столбик на картинке стал выше в 3 раза — график врёт. Честный график имеет lie factor около 1. Посчитаем для конкретного случая.
def lie_factor(shown_a, shown_b, data_a, data_b):
eff_shown = abs(shown_b - shown_a) / shown_a
eff_data = abs(data_b - data_a) / data_a
return eff_shown / eff_data
# данные выросли с 100 до 150 (на 50%),
# но на графике столбик нарисован от 200 до 500 пикселей
lf = lie_factor(200, 500, 100, 150)
print("lie factor =", round(lf, 2))
print("честно, если близко к 1;", round(lf, 2), "-> график преувеличивает")Вывод:
lie factor = 3.0 честно, если близко к 1; 3.0 -> график преувеличивает
Данные выросли в полтора раза, а график показывает рост втрое — lie factor 3, явное искажение.
Как работает под капотом
Принцип опирается на то, что внимание — ограниченный ресурс. Каждый лишний штрих требует от мозга решения «это данные или нет?». Убирая мусор, мы освобождаем когнитивный бюджет на собственно анализ. Поэтому минималистичный график не «голый», а эффективный: всё внимание идёт на сигнал.
Спор о chartjunk и где граница
Принципы Тафти иногда понимают слишком буквально — как призыв к полному аскетизму. Это вызвало содержательную дискуссию. Исследование Скотта Бейтмана (2010) показало, что умеренно «украшенные» графики иногда лучше запоминаются. Значит ли это, что Тафти неправ? Нет: речь о разных задачах. Для точного анализа и научной публикации минимализм выигрывает однозначно — лишние элементы замедляют чтение и повышают риск ошибки. Для запоминающейся инфографики в популярном тексте немного «характера» допустимо.
В научном контексте граница проста: украшение оправдано, только если оно помогает понять данные. Лёгкая сетка, помогающая считать значения, — полезна. Подпись, проясняющая единицы, — необходима. А вот градиентная заливка фона, тени под столбцами и трёхмерные «бочки» не помогают понять ничего — это чистый chartjunk, и его место в корзине. Правило Тафти «стирайте, стирайте» — это про дисциплину внимания, а не про красоту ради красоты.
Частые ошибки
- 3D там, где хватит 2D — главный источник chartjunk.
- Тяжёлая тёмная сетка поверх данных — конкурирует с точками; делайте сетку бледной или убирайте.
- Двойное кодирование без нужды — и цвет, и подпись, и узор для одной категории.
- Искажённый масштаб ради «выразительности» — растёт lie factor.
Итог
- Максимизируйте data-ink ratio: чернила — для данных.
- Chartjunk (3D, тени, заливки) удаляйте безжалостно.
- Lie factor около 1 — признак честного масштаба.
- Минимализм освобождает внимание читателя для сигнала.