Matplotlib Круговая диаграмма
Круговая диаграмма — часто используемый график визуализации данных, который показывает долю каждой категории в общей сумме.
В pyplot мы можем использовать методpie()для построения круговой диаграммы.
Синтаксис метода pie() выглядит следующим образом:
matplotlib.pyplot.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=None, data=None)[source]
Описание параметра:
-
x: Массив или список чисел с плавающей точкой; данные, используемые для построения круговой диаграммы, представляющие площадь каждого сектора.
-
explode: массив, представляющий зазор между секторами, со значением по умолчанию 0.
-
labels: список, подписи для каждого сектора, со значением по умолчанию None.
-
colors: массив, представляющий цвета каждого сектора, со значением по умолчанию None.
-
autopct: Задает формат отображения процентного значения каждого сектора на круговой диаграмме,%d%%целочисленный процент,%0.1fодин знак после запятой,%0.1f%%процент с одним знаком после запятой,%0.2f%%процент с двумя знаками после запятой.
-
labeldistance: позиция отрисовки подписей, как отношение к радиусу, со значением по умолчанию 1.1, например,<1тогда она рисуется внутри круговой диаграммы.
-
pctdistance:: Аналогично labeldistance, задает масштаб положения autopct, со значением по умолчанию 0.6.
-
shadow:: Логическое значение True или False, задает тень круговой диаграммы. По умолчанию False, то есть без тени.
-
radius:: Задает радиус круговой диаграммы, по умолчанию 1.
-
startangle:: Используется для указания начального угла круговой диаграммы. По умолчанию она рисуется против часовой стрелки от положительной оси x; если установлено значение 90, то рисуется от положительной оси y.
-
counterclock: Логическое значение, используется для указания, рисовать ли секторы против часовой стрелки. По умолчанию True, т.е. против часовой стрелки; False — по часовой стрелке.
- wedgeprops: Словарь, по умолчанию None. Используется для указания свойств сектора, таких как цвет линии границы, ширина линии границы и т.д. Например: wedgeprops={'linewidth':5} устанавливает ширину линии клина равной 5.
- textprops: Словарь, используется для указания свойств текстовых меток, таких как размер шрифта, цвет шрифта и т.д. По умолчанию None.
- center: Список чисел с плавающей точкой, используется для указания центрального положения круговой диаграммы. По умолчанию: (0,0).
- frame: Логический тип, используется для указания, рисовать ли рамку круговой диаграммы. По умолчанию: False. Если True, рисовать рамку осей вместе с диаграммой.
- rotatelabels: Логический тип, используется для указания, поворачивать ли текстовые метки. По умолчанию False. Если True, повернуть каждую метку на заданный угол.
-
data: Используется для указания данных. Если параметр data задан, вы можете напрямую использовать столбцы в DataFrame в качестве значений для таких параметров, как x и labels, без повторной передачи их.
Кроме того, функция pie() может также возвращать три параметра:
wedges: Список, содержащий объекты клиньев.texts: Список, содержащий объекты текстовых меток.autotexts: Список, содержащий автоматически сгенерированные объекты текстовых меток.
В следующем примере просто используется pie() для создания круговой диаграммы:
Пример
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y)
plt.show()
Отображаемый результат выглядит следующим образом:

Задайте метки и цвета для каждого сектора круговой диаграммы:
Пример
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y,
labels=['A','B','C','D'], # Задать метки круговой диаграммы
colors=["#d5695d", "#5d8ca8", "#5B80A6", "#a564c9"], # Задать цвета круговой диаграммы
)
plt.title("EXAMPLE Pie Test") # Задать заголовок
plt.show()
Отображаемый результат выглядит следующим образом:

Выделите второй сектор и отформатируйте выходной процент:
Пример
# Данные
sizes = [15, 30, 45, 10]
# Метки круговой диаграммы
labels = ['A', 'B', 'C', 'D']
# Цвета круговой диаграммы
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral']
# Выделить второй сектор
explode = (0, 0.1, 0, 0)
# Построить круговую диаграмму
plt.pie(sizes, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90)
# Заголовок
plt.title("EXAMPLE Pie Test")
# Отобразить график
plt.show()
Мы определили список sizes, содержащий 4 элемента, который представляет долю каждой категории в общей сумме. Затем мы определили список labels, содержащий 4 элемента, который представляет метки каждой категории. Далее мы определили список colors, содержащий 4 элемента, который представляет цвет каждой категории. Затем мы определили кортеж explode, содержащий 4 элемента, который используется для указания, следует ли выделять сектор. Далее мы вызвали функцию plt.pie для построения круговой диаграммы, передав указанные выше параметры. Наконец, мы добавили заголовок и вызвали plt.show() для отображения графика.
Отображаемый результат выглядит следующим образом:

Пример
import numpy as np
y = np.array([35, 25, 25, 15])
plt.pie(y,
labels=['A','B','C','D'], # Задать метки круговой диаграммы
colors=["#d5695d", "#5d8ca8", "#5B80A6", "#a564c9"], # Задать цвета круговой диаграммы
explode=(0, 0.2, 0, 0), # Вторая часть выделена; чем больше значение, тем дальше от центра
autopct='%.2f%%', # Форматировать выводимый процент
)
plt.title("EXAMPLE Pie Test")
plt.show()

Другие расширенияПримечание:По умолчанию первый сектор рисуется от оси x и движется против часовой стрелки:
