Візуалізація даних за допомогою matplotlib

Комплексний модуль про побудову графіків у Python — від базових концепцій до складних багатопанельних візуалізацій

Візуалізація даних за допомогою matplotlib

🎯 Мета модуля

  • Опанувати базову архітектуру matplotlib (Figure, Axes)
  • Навчитися будувати 6 типів графіків для різних завдань аналізу
  • Освоїти візуалізацію розподілів та залежностей між змінними
  • Навчитися створювати багатопанельні композиції (subplots)
  • Опанувати кастомізацію: кольори, стилі, легенди, анотації

📚 Структура модуля

  1. Основи matplotlib — Figure, Axes, перший графік
  2. Розподіли — Гістограми та box plots
  3. Залежності — Scatter plots та кореляція
  4. Категорії — Bar charts та pie charts
  5. Композиції — Subplots та стилізація

Чому візуалізація — це не прикраса, а інструмент мислення

Уявіть: перед вами таблиця з 1000 рядків чисел — результати вимірювань температури протягом місяця. Ви дивитесь на ці числа і... нічого не розумієте. Є піки? Є тренди? Чи стабільна температура?

А тепер подивіться на той самий датасет графічно:

visualization_power.ipynb
Python 3 (ipykernel)
Code
In [1]:
import numpy as np
import matplotlib.pyplot as plt

# Генеруємо 1000 вимірювань температури (30 днів по 24 години + шум)
rng = np.random.default_rng(seed=42)
hours = np.arange(1000)
temperature = 20 + 5 * np.sin(hours * 2 * np.pi / 24) + rng.normal(0, 1, 1000)

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 4))

# Ліворуч: перші 100 чисел у вигляді тексту (нечитабельно)
ax1.text(0.1, 0.5, f"Дані: {temperature[:100].round(1).tolist()[:20]}...", 
         fontsize=8, wrap=True)
ax1.set_title("Таблиця з числами (перші 100 значень)")
ax1.axis("off")

# Праворуч: той самий датасет графічно (одразу видно паттерн!)
ax2.plot(hours[:240], temperature[:240], linewidth=0.8, alpha=0.7)
ax2.set_title("Графік (перші 10 днів)")
ax2.set_xlabel("Години")
ax2.set_ylabel("Температура (°C)")
ax2.grid(alpha=0.3)

plt.tight_layout()
plt.show()
Out[1]:

Висновок одразу видно на графіку: температура коливається з періодом 24 години (добовий цикл), середнє значення ~20°C, амплітуда ~5°C.

Аналогія: дані без візуалізації — це як карта міста, описана словами («йдіть 300 метрів на північ, потім 150 метрів на схід...»). Графік — це сама карта. Одразу видно весь маршрут, перехрестя, тупики.

Закон візуалізації даних: якщо ви не можете пояснити концепцію графічно, ви не розумієте її до кінця. Графік — це інструмент мислення, а не просто «прикраса» до звіту.

Структура модуля

Цей модуль складається з п'яти підтем, кожна з яких розкриває окремий аспект візуалізації:

Підтема 1: Основи matplotlib

Архітектура бібліотеки, об'єкти Figure та Axes, побудова першого лінійного графіка, базова кастомізація (заголовки, підписи осей, сітка).

Ключові питання: Чому plt.plot() та ax.plot() — це не одне й те саме? Як matplotlib влаштований «під капотом»?

Підтема 2: Візуалізація розподілів

Гістограми для неперервних змінних, box plots для виявлення викидів та порівняння груп. Зв'язок зі статистикою: медіана, квартилі, нормальний розподіл.

Ключові питання: Скільки bins потрібно для гістограми? Як побачити викиди на box plot?

Підтема 3: Візуалізація залежностей

Scatter plots для виявлення кореляцій між двома змінними. Зв'язок зі статистикою: коефіцієнт кореляції Пірсона, лінія тренду.

Ключові питання: Як побачити кореляцію графічно? Чи означає кореляція причинно-наслідковий зв'язок?

Підтема 4: Візуалізація категоріальних даних

Bar charts для порівняння категорій, pie charts для часток цілого. Коли використовувати кожен тип графіка.

Ключові питання: Чому bar chart кращий за pie chart у більшості випадків? Коли pie chart виправданий?

Підтема 5: Композиції та стилізація

Побудова кількох графіків на одній фігурі (subplots), кастомізація кольорів, шрифтів, легенд, анотацій. Створення «дашбордів» для аналізу.

Ключові питання: Як розмістити 6 графіків на одній сторінці? Як вибрати кольорову схему для accessibility?


Навігація по модулю

1️⃣ Основи matplotlib

Figure, Axes, лінійні графіки, базова кастомізація

2️⃣ Розподіли

Гістограми, box plots, виявлення викидів

3️⃣ Залежності

Scatter plots, кореляція, лінії тренду

4️⃣ Категорії

Bar charts, pie charts, групові порівняння

5️⃣ Композиції

Subplots, стилізація, багатопанельні дашборди

Після завершення модуля ви зможете

✅ Швидкий аналіз

Побудувати 5 різних графіків для будь-якого датасету за 5 хвилин. Одразу побачити розподіли, кореляції, викиди та тренди.

✅ Комунікація інсайтів

Створювати графіки, які розповідають історію. Не просто «ось дані», а «ось що ці дані означають і чому це важливо».

✅ Дебаг моделей ML

Візуалізувати помилки моделей, розподіл передбачень, confusion matrices. Графік показує проблему швидше за 100 рядків логів.
Поради перед початком:
  • Тримайте документацію matplotlib відкритою: matplotlib.org
  • Експериментуйте з параметрами — змініть колір, розмір, стиль і подивіться, що вийде
  • Кожен графік у підтемах можна скопіювати та адаптувати під свої дані
  • Не намагайтеся запам'ятати всі параметри — запам'ятайте концепції (Figure, Axes, типи графіків)
Copyright © 2026