JavaRush /Курси /Python SELF UA /Створення кругових діаграм для наочного відображення кате...

Створення кругових діаграм для наочного відображення категорій

Python SELF UA
Рівень 41 , Лекція 4
Відкрита

1. Поняття та використання кругової діаграми

Кругова діаграма, або "пиріг", дозволяє візуально представити відносні розміри частин одного цілого. Якщо ти коли-небудь питав 10 своїх друзів про їх улюблену мову програмування і хотів би представити це у вигляді графіка, кругова діаграма — саме те, що потрібно. Вона чудово підходить для демонстрації складових чогось, наприклад, частки ринку компаній або розподілу щоденного часу між програмуванням і переглядом відео з котиками.

Використання функції pie() для створення кругової діаграми

Matplotlib пропонує круту функцію pie(), яка робить створення кругових діаграм легким, як пиріг!

Ось базовий приклад використання:

Python

import matplotlib.pyplot as plt

# Дані для діаграми
labels = ['Python', 'JavaScript', 'C++', 'Java']
sizes = [40, 30, 20, 10]  # Частки у відсотках
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']  # Кольори сегментів

# Побудова діаграми
plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', startangle=140)

# Налаштування осі для кругової діаграми
plt.axis('equal')

# Показати діаграму
plt.show()
    

У цьому прикладі ми визначили категорії (мови програмування), їх розміри й кольори. Потім викликали функцію pie(), щоб створити діаграму. Параметр autopct='%1.1f%%' додає відсотки на сегменти, а startangle=140 повертає діаграму для кращого вигляду.

2. Налаштування кругових діаграм

Кругова діаграма, як новорічне плаття — її можна прикрасити і налаштувати за своїм смаком. Давай розглянемо кілька способів кастомізації.

Відображення відсотків autopct

Параметр autopct дозволяє відобразити відсоткове співвідношення кожної категорії всередині сектора. Значення "%1.1f%%" задає формат відображення відсотків (одна цифра після коми).

Python

import matplotlib.pyplot as plt

labels = ["Коти", "Собаки", "Птахи", "Риби"]
sizes = [35, 30, 20, 15]

plt.pie(sizes, labels=labels, autopct="%1.1f%%")
plt.title("Популярність домашніх тварин")
plt.show()
    

Виділення сегмента діаграми explode

Параметр explode дозволяє виділити один або кілька секторів, змістивши їх від центру. Це може бути корисним для акцентування уваги на конкретній категорії.

Python

import matplotlib.pyplot as plt

labels = ["Коти", "Собаки", "Птахи", "Риби"]
sizes = [35, 30, 20, 15]
explode = (0.1, 0, 0, 0)  # Виділяємо перший сектор (котів)

plt.pie(sizes, labels=labels, autopct="%1.1f%%", explode=explode)
plt.title("Популярність домашніх тварин")
plt.show()
    

Тут сектор «Коти» зміщується від центру на 10% (значення 0.1), привертаючи до себе увагу.

Зміна кольору секторів colors

Ви можете задати колір кожного сектора за допомогою параметра colors, передавши список кольорів.

Python

import matplotlib.pyplot as plt

labels = ["Коти", "Собаки", "Птахи", "Риби"]
sizes = [35, 30, 20, 15]
colors = ["#ff9999", "#66b3ff", "#99ff99", "#ffcc99"]

plt.pie(sizes, labels=labels, autopct="%1.1f%%", colors=colors)
plt.title("Популярність домашніх тварин")
plt.show()
    

У цьому прикладі кожному сектору призначено свій колір для поліпшення візуального сприйняття.

Зміна початкового кута startangle

Параметр startangle задає початковий кут діаграми. Це може допомогти встановити основну категорію в певне положення, наприклад, у верхній частині діаграми.

Python

import matplotlib.pyplot as plt

labels = ["Коти", "Собаки", "Птахи", "Риби"]
sizes = [35, 30, 20, 15]

plt.pie(sizes, labels=labels, autopct="%1.1f%%", startangle=90)
plt.title("Популярність домашніх тварин")
plt.show()
    

Параметр startangle=90 повертає діаграму, щоб перший сектор починався з кута 90 градусів (вертикально вгору).

3. Практичні приклади

Хоча кругові діаграми — це класичний інструмент, вони підходять не до всіх випадків. Якщо у вас багато маленьких сегментів або дані, які складно сприймати на круговій діаграмі, можливо, краще вибрати іншу візуалізацію, наприклад, бар-чарт. Завжди думайте про зрозумілість для вашого глядача.

Приклад: Аналіз ринку за сегментами

Припустимо, що у нас є дані про розподіл часток ринку між чотирма компаніями, і ми хочемо створити кругову діаграму для наочного відображення.

Python

import matplotlib.pyplot as plt

# Дані про частки ринку
labels = ["Компанія A", "Компанія B", "Компанія C", "Компанія D"]
sizes = [40, 25, 20, 15]
colors = ["#ff9999", "#66b3ff", "#99ff99", "#ffcc99"]
explode = (0.1, 0, 0, 0)  # Виділяємо сектор компанії A

plt.pie(sizes, labels=labels, autopct="%1.1f%%", startangle=140, colors=colors, explode=explode)
plt.title("Розподіл часток ринку")
plt.show()
    

Ця діаграма відображає частки ринку компаній і виділяє сегмент компанії A, щоб підкреслити її лідерство на ринку.

Корисні поради для побудови кругових діаграм

  • Обмежуйте кількість категорій: Кругові діаграми ефективні при невеликій кількості категорій. Якщо категорій занадто багато, графік стає важким для сприйняття.
  • Додавайте відсотки: Вказівка відсоткових значень у секторах допомагає швидше інтерпретувати дані.
  • Використовуйте виділення (explode): Виділяйте важливі категорії, щоб акцентувати увагу на них.
  • Кольорова палітра: Використовуйте кольори, які легко розрізняти, особливо якщо діаграма включає більше чотирьох категорій.
  • Обмірковуйте альтернативи: Для великої кількості категорій кругову діаграму краще замінити стовпчастою діаграмою або гістограмою.

Використовуйте це маленьке дослідження з круговими діаграмами, щоб поглибити свої навички роботи з Matplotlib. Це один із кроків до того, щоб стати майстром візуалізації даних, здатним розповісти будь-яку історію за допомогою графіків і діаграм. Удачі, і нехай ваші діаграми завжди будуть апетитними на вигляд! 🍕

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ