Как сделать вложенную круговую диаграмму на Python

Вложенная круговая диаграмма , также известная как вложенная кольцевая диаграмма , отображает данные на нескольких уровнях. Здесь мы собираемся понять, как реализовать вложенную круговую диаграмму с помощью 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 () 

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

Оцените статью
nanomode.ru
Добавить комментарий