Привет! Данные становятся понятнее, когда ты их видишь. Графики помогают увидеть тренды, выбросы и закономерности, которые не заметны в таблицах. И главный инструмент для визуализации в Python — Matplotlib.
В этой статье мы разберём:
- Что такое Matplotlib и зачем он нужен
- Как установить Matplotlib
- Создание первого графика
- Основные параметры настройки
- Типы графиков: линейный, точечный, столбчатый
- Что нужно знать перед началом
- Основная часть
- Что такое Matplotlib?
- Установка Matplotlib
- Установка через pip
- Установка через conda (если используешь Anaconda)
- Проверка установки
- Твой первый график
- Простой линейный график
- Настройка графика
- Добавляем заголовок и подписи осей
- Изменяем цвет и стиль линии
- Добавляем сетку
- Разные типы графиков
- Точечный график (scatter)
- Столбчатая диаграмма (bar)
- Гистограмма (hist)
- Несколько графиков на одной фигуре
- Сохранение графика в файл
- Практический пример: визуализация продаж
- Задачи для закрепления
- Нюансы и подводные камни
- Проблема с отображением на разных системах
- Рендеринг кириллицы
- Частые ошибки и как их избежать
- Ошибка 1: Забыл plt.show()
- Ошибка 2: Не импортировал pyplot
- Ошибка 3: Создание графика после show()
- Шпаргалка
- Заключение
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python (3.7+)
- Базовое понимание списков и массивов
- Желание научиться визуализировать данные
Совет: Matplotlib — базовая библиотека для визуализации. Освоив её, ты легко перейдёшь на Seaborn, Plotly и другие.
Основная часть
Что такое Matplotlib?
Matplotlib — это библиотека для создания статических, интерактивных и анимированных графиков на Python. Она была создана в 2003 году и стала стандартом в Data Science.
Что можно создавать:
- Линейные графики
- Точечные графики (scatter)
- Столбчатые диаграммы (bar)
- Гистограммы (hist)
- Круговые диаграммы (pie)
- 3D-графики
- Тепловые карты
Совет: Matplotlib плотно интегрирован с NumPy и Pandas — ты сможешь строить графики прямо из DataFrame.
Установка Matplotlib
Установка через pip
Открой терминал (командную строку) и выполни:
pip install matplotlibДля обновления до последней версии:
pip install -U matplotlibУстановка через conda (если используешь Anaconda)
conda install matplotlibПроверка установки
import matplotlib
print(matplotlib.__version__)Если видишь номер версии — всё отлично! 🎉
Совет: Для работы с Matplotlib часто устанавливают также NumPy. Он обычно ставится вместе с Matplotlib как зависимость.
Твой первый график
Простой линейный график
import matplotlib.pyplot as plt
# Данные
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# Создаём график
plt.plot(x, y)
# Показываем график
plt.show()Совет:
plt.plot()— основная функция для построения линейных графиков.plt.show()— отображает график.
Настройка графика
Добавляем заголовок и подписи осей
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
# Настройка заголовка и подписей
plt.title('Мой первый график', fontsize=14)
plt.xlabel('Ось X (значения)', fontsize=12)
plt.ylabel('Ось Y (значения)', fontsize=12)
plt.show()Изменяем цвет и стиль линии
plt.plot(x, y, color='red', linestyle='--', linewidth=2, marker='o')
plt.title('График с настройками')
plt.show()Параметры:
| Параметр | Пример | Описание |
|---|---|---|
color | 'red', 'blue', 'green', '#FF5733' | Цвет линии |
linestyle | '-', '--', '-.', ':' | Стиль линии |
linewidth | 1, 2, 3 | Толщина линии |
marker | 'o', 's', '^', 'D' | Маркер точек |
Добавляем сетку
plt.plot(x, y, color='blue', marker='o')
plt.title('График с сеткой')
plt.grid(True, linestyle='--', alpha=0.7)
plt.show()Совет:
alpha=0.7делает сетку полупрозрачной. Это улучшает читаемость.
Разные типы графиков
Точечный график (scatter)
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5, 6, 7, 8]
y = [3, 5, 7, 2, 8, 4, 6, 9]
plt.scatter(x, y, color='green', s=100, alpha=0.7)
plt.title('Точечный график')
plt.xlabel('X')
plt.ylabel('Y')
plt.grid(True, alpha=0.3)
plt.show()Совет:
s=100— размер точек.scatter()полезен для визуализации корреляций.
Столбчатая диаграмма (bar)
import matplotlib.pyplot as plt
categories = ['A', 'B', 'C', 'D', 'E']
values = [10, 25, 15, 30, 20]
plt.bar(categories, values, color='skyblue', edgecolor='navy')
plt.title('Столбчатая диаграмма')
plt.xlabel('Категории')
plt.ylabel('Значения')
plt.show()Гистограмма (hist)
import matplotlib.pyplot as plt
import numpy as np
# Генерируем случайные данные
data = np.random.normal(0, 1, 1000)
plt.hist(data, bins=30, color='purple', alpha=0.7, edgecolor='black')
plt.title('Гистограмма')
plt.xlabel('Значение')
plt.ylabel('Частота')
plt.show()Совет:
bins=30— количество столбцов гистограммы.alpha=0.7— прозрачность.
Несколько графиков на одной фигуре
import matplotlib.pyplot as plt
import numpy as np
# Данные
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
# Создаём фигуру с двумя подграфиками
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 4))
# Первый график
ax1.plot(x, y1, color='blue')
ax1.set_title('Синус')
ax1.grid(True)
# Второй график
ax2.plot(x, y2, color='red')
ax2.set_title('Косинус')
ax2.grid(True)
plt.tight_layout()
plt.show()Совет:
plt.subplots(1, 2)— 1 строка, 2 колонки.figsize— размер фигуры в дюймах.
Сохранение графика в файл
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.title('Сохраняем график')
# Сохраняем в файл
plt.savefig('my_plot.png', dpi=300, bbox_inches='tight')
print("График сохранён в my_plot.png")
plt.show()Параметры:
dpi=300— качество (300 dpi для печати)bbox_inches='tight'— обрезает лишние поля
Совет: Matplotlib поддерживает форматы PNG, JPG, PDF, SVG и другие.
Практический пример: визуализация продаж
import matplotlib.pyplot as plt
# Данные о продажах по месяцам
months = ['Янв', 'Фев', 'Мар', 'Апр', 'Май', 'Июн']
sales = [120, 150, 130, 200, 180, 220]
# Создаём график
plt.figure(figsize=(8, 5))
# Линия с маркерами
plt.plot(months, sales, color='green', marker='o', linewidth=2, markersize=8)
# Настройки
plt.title('Продажи по месяцам', fontsize=14, fontweight='bold')
plt.xlabel('Месяц', fontsize=12)
plt.ylabel('Продажи (тыс. руб.)', fontsize=12)
plt.grid(True, linestyle='--', alpha=0.6)
# Добавляем значения над точками
for i, value in enumerate(sales):
plt.text(i, value + 5, str(value), ha='center', fontsize=10)
plt.tight_layout()
plt.show()Задачи для закрепления
Задача 1. Построй линейный график для данных x = [0, 1, 2, 3, 4], y = [0, 1, 4, 9, 16].
Задача 2. Добавь заголовок «Квадратичная функция» и подписи осей.
Задача 3. Построй точечный график (scatter) для случайных 50 точек.
Задача 4. Сохрани график в файл my_graph.png.
Задача 5. Построй столбчатую диаграмму для категорий [‘A’, ‘B’, ‘C’] со значениями [10, 25, 15].
Ответы:
Задача 1.
import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4]
y = [0, 1, 4, 9, 16]
plt.plot(x, y)
plt.show()Задача 2.
plt.plot(x, y)
plt.title('Квадратичная функция', fontsize=14)
plt.xlabel('X', fontsize=12)
plt.ylabel('Y', fontsize=12)
plt.grid(True)
plt.show()Задача 3.
import numpy as np
x = np.random.rand(50) * 10
y = np.random.rand(50) * 10
plt.scatter(x, y, color='blue', alpha=0.6)
plt.title('Случайные точки')
plt.show()Задача 4.
plt.plot(x, y)
plt.savefig('my_graph.png', dpi=150)Задача 5.
categories = ['A', 'B', 'C']
values = [10, 25, 15]
plt.bar(categories, values, color='skyblue')
plt.title('Столбчатая диаграмма')
plt.show()Нюансы и подводные камни
Проблема с отображением на разных системах
Если график не отображается, попробуй:
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as pltРендеринг кириллицы
Для отображения русского текста нужно настроить шрифты:
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'DejaVu Sans'Или укажи шрифт явно:
plt.title('Заголовок', fontfamily='Arial')Частые ошибки и как их избежать
Ошибка 1: Забыл plt.show()
# График не появится
plt.plot(x, y)
# Добавь show()
plt.plot(x, y)
plt.show()Ошибка 2: Не импортировал pyplot
# Ошибка: plt не определён
plt.plot(x, y)
# Правильно
import matplotlib.pyplot as plt
plt.plot(x, y)Ошибка 3: Создание графика после show()
# После show() график закрыт
plt.plot(x, y)
plt.show()
plt.title('Новый заголовок') # Не отобразится
# Все настройки до show()
plt.plot(x, y)
plt.title('Новый заголовок')
plt.show()Шпаргалка
| Что нужно | Как пишется |
|---|---|
| Импортировать | import matplotlib.pyplot as plt |
| Линейный график | plt.plot(x, y) |
| Точечный график | plt.scatter(x, y) |
| Столбчатая диаграмма | plt.bar(x, y) |
| Гистограмма | plt.hist(data) |
| Заголовок | plt.title('Текст') |
| Подпись X | plt.xlabel('Текст') |
| Подпись Y | plt.ylabel('Текст') |
| Сетка | plt.grid(True) |
| Показать график | plt.show() |
| Сохранить | plt.savefig('name.png') |
| Размер фигуры | plt.figure(figsize=(10, 6)) |
| Несколько графиков | fig, axes = plt.subplots(nrows, ncols) |
Заключение
Сегодня мы узнали:
- 📦 Что такое Matplotlib и как его установить
- 📈 Как создать первый линейный график
- 🎨 Как настраивать цвета, стили и подписи
- 📊 Какие бывают типы графиков (plot, scatter, bar, hist)
- 💾 Как сохранять графики в файлы





