Bar chart vs гистограмма: разница
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Короткий ответ
- 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: горизонтальные
В русскоязычной литературе оба — «столбчатая».
Stacked / grouped bar
Stacked
Сумма по категориям внутри столбца:
┌──────┐
│Green │
├──────┤
│Blue │
├──────┤
│Red │
└──────┘
AGrouped
Каждая под-категория — отдельный столбец рядом:
█ █ █ (A)
█ █ █ (B)
█ █ █ (C)
Red Green BlueHistogram 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.
4. Для частей целого
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 не показывает частоту. Нет.
Тренируйте визуализацию — откройте тренажёр с 1500+ вопросами для собесов.