Столбчатые диаграммы / Bar Plot

Последнее обновление: 10.02.2026

Столбчатые диаграммы (Bar Plot) позволяют визуализировать данные в виде столбцов, где каждый столбец представляет собой определенную категорию или группу, а длина или высота столбца соответствует числовому значению или количеству, связанному с этой категорией.

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

Ось категорий (ось X для вертикальных столбчатых диаграмм или ось Y для горизонтальных столбчатых диаграмм) представляет сравниваемые категории или группы. Каждая категория отображается вдоль этой оси, обеспечивая контекст для данных.

Ось значений (ось Y для вертикальных столбчатых диаграмм или ось X для горизонтальных столбчатых диаграмм) представляет числовые значения или количества, связанные с каждой категорией. Она обеспечивает шкалу для интерпретации высоты или длины столбцов.

Столбчатые диаграммы используются для сравнения значений данных в разных категориях или группах. Они позволяют легко определить, какие категории имеют более высокие или более низкие значения. Так, можно наблюдать распределение значений внутри каждой категории. Столбчатые диаграммы помогают визуализировать разброс или концентрацию данных внутри каждой группы. А ранжирование позволяет выделить наиболее или наименее значимые категории.

Для создания столбчатой диаграммы в функциональном стиле применяется функция matplotlib.pyplot.bar() (или ее аналог Axes.bar())

matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, *, align="center", data=None, **kwargs)

Основные параметры функции:

  • x: X-координаты столбцов

  • height: высоты столбцов

  • width: ширины столбцов

  • bottom: координаты нижней стороны столбцов.

  • align: выравнивание столбцов по координатам x. Принимает следующие значения: "center" (центрирование по x) и "edge" (выравнивание левого края по x). Например, чтобы выровнять столбцы по правому краю, указывается отрицательная ширина и align="edge"

Рассмотрим простейший пример:

import matplotlib.pyplot as plt

# категории
categories = ["Ноутбуки", "Смартфоны", "Планшеты"]
# значения для категорий
sales = [4500, 6200, 3000]

# Создаем вертикальную диаграмму
plt.bar(categories, sales, color="skyblue")

# добавляем текстовые метки и заголовок
plt.xlabel("Категории товаров")
plt.ylabel("Продажи (млн. руб.)")
plt.title("Продажи по категориям")

plt.show()

В данном случае у нас есть два списка с данными: categories (список названий для оси X) и список sales (числовые значения для оси Y, соответствующие каждой категории).

функция plt.bar и столбчатые диаграммы в Matplotlib и Python

Горизонтальные столбчатые диаграммы

Для создания горизонтальных столбчатых диаграмм применяется другая функция - matplotlib.pyplot.barh():

matplotlib.pyplot.barh(y, width, height=0.8, left=None, *, align="center", data=None, **kwargs)

Основные параметры функции:

  • y: Y-координаты столбцов

  • width: ширины столбцов

  • height: высоты столбцов

  • left: координаты левой стороны столбцов.

  • align: выравнивание столбцов по координатам x. Принимает следующие значения: "center" (центрирование по ) и "edge" (выравнивание верхнего края по Y). Например, чтобы выровнять столбцы по верху, указывается отрицательная высота и align="edge"

По сути эта функция работает аналогично, только теперь вместе X-координат устанавливаем Y-координаты, а вместо высоты столбцов - их ширину. Пример применения:

import matplotlib.pyplot as plt

# категории
categories = ["Ноутбуки", "Смартфоны", "Планшеты"]
# значения для категорий
sales = [4500, 6200, 3000]

# Создаем горизонтальную диаграмму
plt.barh(categories, sales, color="skyblue")

# добавляем текстовые метки и заголовок
plt.xlabel("Продажи (млн. руб.)")
plt.ylabel("Категории товаров")
plt.title("Продажи по категориям")

plt.show()
функция plt.barh и горизонтальные столбчатые диаграммы в Matplotlib и Python

Настройка столбцов

Столбчатые диаграммы предоставляют широкие возможности для настройки, например, выбор цвета, регулировка ширины столбцов и т.д. Рассмотрим следующий пример:

import matplotlib.pyplot as plt

# категории
categories = ["Ноутбуки", "Смартфоны", "Планшеты"]
# значения для категорий
sales = [4500, 5800, 3000]

# Создаем вертикальную диаграмму
plt.bar(categories, sales, color=["skyblue", "lightgreen", "lightcoral"], edgecolor="#ccc", linewidth=1, alpha=0.7)

# добавляем текстовые метки и заголовок
plt.ylabel("Продажи (млн. руб.)")
plt.xlabel("Категории товаров")
plt.title("Продажи по категориям")

# настраиваем метки по оси y
plt.yticks(fontsize=12, fontweight="bold", color="gray")

# добавляем метки к каждому столбику
for i, v in enumerate(sales):
    plt.text(i, v + 5, str(v), ha="center", va="bottom", fontsize=10, fontweight="bold")

# добавляем сетку
plt.grid(axis="y", linestyle="--", alpha=0.5)

plt.show()

Здесь вызов функции plt.bar() кроме создания столбцов также задает их внешний вид. Так, через параметр color для каждого столбца передаем свой цвет (три значения, поэтому передаем три цвета). Кроме того, добавляем светло-серую рамку (edgecolor), устанавливаем толщину линии (linewidth=1) и небольшую прозрачность (alpha=0.7).

А с помощью цикла for i, v in enumerate(sales) проходим по всем значениям и подписываем их прямо над столбиками, где i - позиция столбика, а v + 5 - небольшое смещение вверх, чтобы текст не сливался со столбиком. Кроме того, значения ha="center" и va="bottom" центрируют текст относительно верхушки столбца.

настройка столбчатых диаграмм в Matplotlib и Python
Помощь сайту
Юмани:
410011174743222
Номер карты:
4048415020898850
Morty Proxy This is a proxified and sanitized view of the page, visit original site.