Круговые диаграммы / Pie chart

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

Круговые диаграммы (Pie chart) представляют круги, разделенные на сектора, где каждый сектор соответствует какой-то определенной серии данных.

Для создания круговых диаграмм применяется функция matplotlib.pyplot.pie() (или ее аналог Axes.pie()):

Axes.pie(x, *, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, 
    startangle=0, radius=1, counterclock=True, wedgeprops=None, textprops=None, 
    center=(0, 0), frame=False, rotatelabels=False, normalize=True, hatch=None, data=None)

Ключевым параметром является параметр x, который собственно и представляет данные в виде списка. Для каждого элемента в этом списке создается свой сектор в зависимости от его значения. Секторы располагаются против часовой стрелки, по умолчанию начиная с оси x.

Из других параметров следует отметить параметр labels, который представляет список с текстовыми метками для каждого элемента данных, и colors, который хранит набор цветов для раскрашивания секторов. Например:

import matplotlib.pyplot as plt

languages = ["Python", "Java", "C++"]
developers = [100, 35, 15]

plt.pie(developers, labels = languages)

plt.show()

Здесь у нас список languages представляет языки программирования, а список developers - количество разработчиков, которые используют соответствующие языки (соответствие устанавливается через индексы). Соответственно в функцию plt.pie() в качестве источника данных передаем список developers, а названия языков служат текстовыми метками рядом с соответствующими секторами:

круговые диаграммы pie chart и функция plt.pie в Matplotlib и Python

Для раскрашивания секторов применяются некоторые цвета по умолчанию. Переопределим их:

import matplotlib.pyplot as plt

languages = ["Python", "Java", "C++"]
developers = [100, 35, 15]
color_names = ["lightsteelblue", "steelblue", "navy"]

plt.pie(developers, labels = languages, colors=color_names)

plt.show()
круговые диаграммы и окраска секторов и функция plt.pie в Matplotlib и Python

Автоматическая маркировка секторов

По умолчанию значения меток определяются на основе процентного размера сектора. Передав параметру autopct функцию или строку форматирования, можно настроить маркировки сектора:

import matplotlib.pyplot as plt

languages = ["Python", "Java", "C++"]
developers = [100, 35, 15]
plt.pie(developers, labels = languages, autopct="%1.1f%%")

plt.show()

Здесь для форматирования используется строка "%1.1f%%". Здесь

  • % обозначает начало спецификации формата.

  • 1. устанавливает минимальное количество символов перед десятичной точкой (1 символ).

  • .1 определяет точность отображаемого значения после точки (1 цифра после запятой).

  • f означает форматирование вещественного числа (float).

  • %% представляет экранизацию символа процента.

Таким образом, %1.1f%% показывает число с одной цифрой после запятой с последующим символом %.

маркировка секторов круговых диаграмм и функция plt.pie в Matplotlib и Python

По умолчанию на секторе отображается текста autopct, а текстовая метка - вне сектора. Но мы можем поменять расположение с помощью параметров labeldistance и pctdistance для позиционирования меток и текста autopct соответственно. labeldistance и pctdistance представляют отношения радиуса; поэтому они варьируются от 0 для центра круговой диаграммы до 1 для ее края и могут быть установлены больше 1, чтобы разместить текст за пределами диаграммы:

import matplotlib.pyplot as plt

languages = ["Python", "Java", "C++"]
developers = [100, 35, 15]
plt.pie(developers, labels = languages, autopct="%1.1f%%", pctdistance=1.25, labeldistance=.5)

plt.show()
текст секторов круговых диаграмм и функция plt.pie в Matplotlib и Python

Вырез сектора

С помощью параметра explode можно выполнить вырез или смещение сегмента:

import matplotlib.pyplot as plt

languages = ["Python", "Java", "C++"]
developers = [100, 35, 15]

explode = (0, 0.1, 0) # разбить только второй сегмент

plt.pie(developers, labels = languages, autopct="%1.1f%%", explode=explode)

plt.show()

Параметр explode принимает список, где каждый элемент указывает долю радиуса, на которую следует сместить каждый сектор. В примере выше смещаем только второй сектор (для языка Java), поэтому только для него устанавливаем ненулевое значение, а для всех остальных секторов передаем значение 0

смещение секторов круговых диаграмм и функция plt.pie в Matplotlib и Python

Дополнительно стоит отметить параметр startangle, который позволяет повернуть начальный угол:

plt.pie(developers, labels = languages, autopct="%1.1f%%", explode=explode, startangle=90)

Начальный угол по умолчанию равен 0, и если параметр startangle установлен на 90, то все срезы повернуты против часовой стрелки на 90 градусов.

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