Вложенная круговая диаграмма , также известная как вложенная кольцевая диаграмма , отображает данные на нескольких уровнях. Здесь мы собираемся понять, как реализовать вложенную круговую диаграмму с помощью matplotlib.
Что такое Matplotlib?
Matplotlib — это библиотека построения графиков на Python и ее расширение числовой математики NumPy
, которое позволяет пользователям создавать статические, анимированные и интерактивные визуальные эффекты.
Реализация вложенных круговая диаграмма
Сначала мы собираемся импортировать необходимые библиотеки с помощью функции import
:
импортировать numpy как np импортировать панды как pdimport matplotlib.pyplot as plt
Затем мы присвоим значения секторам круговой диаграммы. Здесь вложенная круговая диаграмма принимает значения в трех разных категориях. Мы собираемся назначить данные, соответствующие трем классам.
Во внутреннем круге мы будем представлять значение как член его собственной группы в форме процентов. Во внешнем круге мы представим их исходные категории вместе с процентами.
После построения пирога форма пончика должна выглядеть так:

Код
Здесь мы берем оценки трех студентов и строим график вложенная круговая диаграмма, использующая процент этих оценок.
Чтобы получить концентрическую форму, мы устанавливаем ширину круговой диаграммы с помощью функции wedgeprops
.
Чтобы использовать столбцы для конкретных данных из заданных данных, мы используем df.iloc []
— это позволяет нам брать определенные значения из списка.
v>
# Импорт необходимых библиотекimport numpy как npimport pandas как pdimport matplotlib.pyplot as plt # Получение необработанных данных трех studentssource_data = {'student' : ['Джейк', 'Эми', 'Бойл'], 'math_score': [68,82,97], 'english_score': [70,93,99], 'Phys_score': [73,85,95] } # Разделение необработанных данных в удобную для использования формуdf = pd. DataFrame (source_data, columns = ['студенты', 'math_score', 'english_score', 'Phys_score']) df ['cumulative_score'] = df ['math_score'] + df ['english_score'] + df ['Phys_score' ] # Разделение частей данных x1 = df.iloc [0: 3,1] x2 = df.iloc [0: 3,2] # Установка цветов рисункаcmap = plt.get_cmap ("tab20c") outer_colors = cmap (np.arange (3) * 4) inner_colors = cmap (np.array ([1,5,9])) # Установка размера рисунка plt.figure (figsize = (8,6)) # Построение внешнего элемента .pie (x1, labels = df.iloc [0: 3, 0], startangle = 90, pctdistance = 0.88, colors = outer_colors, autopct = '% 1.1f %%', radius = 1.0, labeldistance = 1.05, textprops = {'fontweight': 'bold', 'fontsize': 13}, wedgeprops = {'linewidth': 3, 'edgecolor': "w"}) # Планирование внутреннего pieplt.pie (x2, startangle = 90, pctdistance = 0.85, colors = inner_colors, autopct = '% 1.1f %%', radius = 0.60, textprops = {'fontweight': 'bold', 'fontsize': 13}, wedgeprops = {'linewidth': 3, 'edgecolor' : "w"}) # Создание формы пончика для piecentre_circle = plt.Circle ((0,0), 0 .25, fc = 'white') fig = plt.gcf () fig.gca (). Add_artist (centre_circle) # добавление центрального круга # Построение круговой оси plt.axis ('equal') # равное соотношение сторон plt.legend ( loc = 3, fontsize = 15) plt.tight_layout () plt.show ()
Приведенный выше код строит вложенную круговую диаграмму, которая дает нам проценты или оценки, полученные разными учащимися. Вы можете добавить больше слоев к круговой диаграмме, добавив больше столбцов данных.