Bar chart vs гистограмма: разница

Проверь себя · 1/3разбор после ответа
Вы сравниваете распределение выручки по двум когортам на histogram. Что важно сделать, чтобы сравнение было честным?

Короткий ответ

  • Bar chart — для категориальных данных (выручка по категориям)
  • Histogram — для числовых данных (распределение возрастов)

У них разный смысл оси X.

Визуально

Bar chart

Category A |████████
Category B |████
Category C |██████
Category D |█████████

По X — дискретные категории (имена, не числа).

Histogram

Age 20-30 |██████████
Age 30-40 |█████████████
Age 40-50 |███████
Age 50-60 |████

По X — числовой интервал (bin).

Главные отличия

Bar chart Histogram
Данные по X категориальные числовые
Столбцы примыкают нет (пробелы) да (без пробелов)
Порядок можно менять фиксированный
Что показывает значение для каждой категории распределение числовой переменной
Сортировка можно by height нет (по X в порядке)

Примеры use cases

Bar chart

  • Revenue по категориям товаров
  • Количество пользователей по стране
  • Топ-10 товаров по продажам
  • Conversion rate по каналам
  • A/B тест: metric в control vs test

Histogram

  • Распределение возраста пользователей
  • Распределение чеков
  • Время отклика сервера
  • Размер сессии в минутах
  • Количество товаров в корзине

В Python

Bar chart

import matplotlib.pyplot as plt

categories = ['A', 'B', 'C', 'D']
values = [100, 50, 150, 200]

plt.bar(categories, values)
plt.xlabel('Category')
plt.ylabel('Revenue')
plt.show()

Или в pandas:

df.groupby('category')['revenue'].sum().plot(kind='bar')

Histogram

import matplotlib.pyplot as plt

ages = [25, 30, 35, 28, 45, 50, 60, ...]

plt.hist(ages, bins=20)
plt.xlabel('Age')
plt.ylabel('Count')
plt.show()

Или в pandas:

df['age'].hist(bins=20)

Почему путают

Оба — «столбцы снизу вверх». Визуально похожи. Но смысл разный.

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

  • По X числовые bin-ы → histogram
  • По X строковые категории → bar chart

Column chart vs bar chart

Мелочь, но иногда важно:

  • Column chart: вертикальные столбцы (по умолчанию)
  • Bar chart: горизонтальные

В русскоязычной литературе оба — «столбчатая».

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Stacked / grouped bar

Stacked

Сумма по категориям внутри столбца:

┌──────┐
│Green │
├──────┤
│Blue  │
├──────┤
│Red   │
└──────┘
 A

Grouped

Каждая под-категория — отдельный столбец рядом:

█  █  █  (A)
█  █  █  (B)
█  █  █  (C)
Red Green Blue

Histogram variations

Density histogram

Вместо частоты — плотность (sum всех bin = 1).

plt.hist(x, bins=30, density=True)

Для сравнения распределений разного размера.

2D histogram

Две числовые переменные:

plt.hist2d(x, y, bins=30)

KDE (kernel density estimation)

Сглаженный hist:

import seaborn as sns
sns.histplot(x, kde=True)

Когда НЕ использовать bar chart

1. Для распределения числовой переменной

Используйте histogram, а не bar chart.

2. Для тренда во времени

Используйте line chart.

3. Для сравнения связи X-Y

Используйте scatter plot.

Pie chart (хотя часто bar chart тоже работает).

Когда НЕ использовать histogram

1. Для категорий

Используйте bar chart.

2. Для малого числа значений

Если есть только 5 уникальных значений — bar chart покажет чётче.

3. Для очень длинного хвоста

Log scale или обрезать по P99.

Частые ошибки

1. Histogram с пропусками

Если между bin-ами есть пустые — возможно слишком мелкие bins.

2. Bar chart с числовой осью

Если x-ось — числа, может быть нужен scatter plot или line.

3. Неправильный порядок в bar chart

По высоте или по значению категории? Зависит от задачи.

4. Мало bins в histogram

5 bins может скрыть структуру. 50 bins — показать шум. Обычно 20-30.

5. Сравнение групп одним цветом

Используйте hue / multiple colors.

На собесе

«Чем отличается bar chart от histogram?» Bar chart — для категорий. Histogram — для числовых данных, показывает распределение.

«Когда column / bar / pie?» Column / bar — для сравнения. Pie — для долей целого (но часто bar лучше).

«Как выбрать количество bins?» Sturges: log2(N) + 1. Обычно 20-30.

Связанные темы

FAQ

Bar chart или pie chart?

Bar обычно лучше — точнее сравнение значений. Pie — для 2-5 категорий.

Horizontal или vertical bar?

Horizontal — если категорий много / имена длинные. Vertical — по умолчанию.

Histogram или box plot?

Histogram — полное распределение. Box plot — быстрое сравнение нескольких групп.

Line chart вместо histogram?

Line не показывает частоту. Нет.