Гид по технологиям

Визуализация в Jupyter Notebook: matplotlib и pandas

5 min read Визуализация данных Обновлено 15 Apr 2026
Графики в Jupyter Notebook: matplotlib и pandas
Графики в Jupyter Notebook: matplotlib и pandas

Иллюстрация: примеры графиков в Jupyter Notebook

Введение

Jupyter Notebook — основной инструмент для аналитиков и дата-сайентистов. Его интерактивный веб-интерфейс удобен для быстрой визуализации, анализа данных и совместной работы. Визуализация помогает увидеть форму, тренды и аномалии в данных — через линии, бары, круги или плотности.

Этот материал пошагово покажет, как работать с графиками в Jupyter: базовые примеры, форматы, типичные ошибки, советы и готовые сниппеты.

Требования

Убедитесь, что у вас установлены Jupyter, pandas и matplotlib. В терминале выполните:

$ pip install jupyter
$ pip install pandas
$ pip install matplotlib

Запустите сервер Jupyter командой:

$ jupyter notebook

Important: не закрывайте терминал, в котором запущен сервер — это остановит Jupyter.

Быстрый старт: простой график

Откройте новую ячейку в блокноте и выполните этот код:

import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7,8]
y = [2,4,6,8,10,12,14,16]

plt.plot(x, y)
plt.show()

Простой линейный график в Jupyter

Объяснение: import подключает модуль pyplot; plt.plot рисует линию, plt.show отображает график. Масштаб осей рассчитывается автоматически. Если длины списков x и y различаются, Python вызовет ошибку при попытке построить график — проверяйте согласованность данных.

Чтобы нарисовать кривую, достаточно заменить значения y на соответствующие:

import matplotlib.pyplot as plt

x = [3,4,5,6,7,8,9,10,11,12]
y = [9,16,25,36,49,64,81,100,121,144]

plt.plot(x, y)
plt.show()

Кривая (квадратичная) в Jupyter

Доступные типы графиков

Некоторые типы, например гистограммы или area, требуют явного вызова соответствующей функции.

Столбчатая диаграмма

Используйте plt.bar для столбцов:

import matplotlib.pyplot as plt

x = [3,4,5,6,7,8,9,10,11,12]
y = [9,16,25,36,49,64,81,100,121,144]

plt.bar(x, y)
plt.show()

Столбчатая диаграмма (bar)

Точечная диаграмма

Для разброса точек используйте plt.scatter:

import matplotlib.pyplot as plt

x = [3,4,5,6,7,8,9,10,11,12]
y = [9,16,25,36,49,64,81,100,121,144]

plt.scatter(x, y)
plt.show()

Точечная диаграмма (scatter)

Круговая диаграмма

Круговые диаграммы рисуются через plt.pie. Особое внимание уделите параметру figsize — он задаёт соотношение сторон фигуры.

import matplotlib.pyplot as plt

x = [4,9,16,25,36]
fig = plt.figure(figsize =(9, 5))

plt.pie(x)
plt.show()

Круговая диаграмма (пример)

Параметры pie, которые полезно знать:

  • labels — подписи для каждого сектора;
  • colors — список цветов (можно в hex или именах цветов);
  • autopct — формат вывода процентного значения на секторе.

Пример с подписями и цветами:

import matplotlib.pyplot as plt

x = [4,9,16,25,36]
fig = plt.figure(figsize =(5.5, 5.5))

plt.pie(x, labels=('Guavas', 'Berries', 'Mangoes', 'Apples', 'Avocado'),
        colors=('#a86544', '#eb5b13', '#ebc713', '#bdeb13', '#8aeb13'),
        autopct='%1.1f%%')

plt.show()

Круговая диаграмма с подписью слайсов

Другие полезные типы: hist (гистограмма), area (площадь), kde (оценка плотности). Для них удобны встроенные методы pandas.

Форматирование графиков

Добавление заголовков, подписей осей и легенд делает графики информативными:

plt.title('Мой заголовок графика')
plt.xlabel('ось X')
plt.ylabel('ось Y')

Несколько дополнительных приёмов:

  • Сохранение: plt.savefig(‘figure.png’, dpi=150, bbox_inches=’tight’)
  • Сетка: plt.grid(True)
  • Легенда: plt.legend()
  • Настройка стиля: plt.style.use(‘seaborn’) или ‘ggplot’
  • Маркеры и линии: plt.plot(x, y, marker=’o’, linestyle=’–‘, color=’#2a9d8f’)
  • Несколько графиков: fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10,4))

Пример сохранения изображения

plt.plot(x, y)
plt.title('Пример сохранения')
plt.savefig('myplot.png', dpi=120)
plt.show()

Практические советы и ловушки

Important: при работе с большими наборами данных scatter может сильно тормозить и точки будут накладываться. Для плотных точек рассмотрите прозрачность alpha, агрегацию или 2D-гистограмму.

Когда график не отображается:

  • Проверьте, что plt.show() вызван;
  • Убедитесь, что длины x и y совпадают;
  • Если используете pandas.plot внутри Jupyter, перезапустите ядро при конфликтах версий библиотек.

Counterexamples / когда это не работает:

  • График scatter с миллионами точек: рендеринг и интерпретация проблемны;
  • Категориальные данные, поданные в функции, ожидающие чисел, вызовут некорректный результат;
  • При использовании интерактивных бэкендов (например, %matplotlib notebook) поведение plt.show() и сохранения может отличаться.

Подход к визуализации: мини-методология

  1. Определите вопрос, который должны отвечать графики (тренд, распределение, корреляция).
  2. Выберите тип графика по задаче: распределение -> hist/kde, связь -> scatter/line, состав -> pie/bar.
  3. Подготовьте данные: агрегируйте, нормализуйте, обработайте пропуски.
  4. Нарисуйте черновой график и проверьте, читается ли нужная информация.
  5. Добавьте подписи, легенду, сетку и сохраните версию для отчёта.

Ментальные модели для выбора графика

  • Число в динамике -> line
  • Сравнение категорий -> bar
  • Частотное распределение -> hist/kde
  • Доля от целого -> pie (используйте с осторожностью)
  • Плотные точки -> hexbin или 2D-hist

Чек-лист по ролям

Data Scientist:

  • Проверил соответствие длин осей
  • Попробовал несколько типов для одной задачи
  • Сохранил визуализации в высоком разрешении

Data Analyst:

  • Добавил заголовки и подписи осей
  • Подписал легенду и указал единицы измерения
  • Подготовил версии для отчёта в PNG/PDF

ML Engineer:

  • Сгенерировал диагностические графики (loss/accuracy)
  • Автоматизировал сохранение в папку артефактов
  • Убедился, что графики воспроизводимы в CI

Product Manager:

  • Получил краткие поясняющие подписи
  • Проверил, что ключевой инсайт виден без глубокого анализа

Сниппеты и шпаргалка

  • Подписи и стиль:
plt.style.use('seaborn')
plt.plot(x, y, marker='o')
plt.title('Заголовок')
plt.xlabel('X, единицы')
plt.ylabel('Y, ед.')
plt.legend(['серия 1'])
plt.grid(True)
  • Несколько подграфиков:
fig, axs = plt.subplots(1, 2, figsize=(10,4))
axs[0].plot(x, y)
axs[1].bar(x, y)
plt.tight_layout()
  • Сохранение и прозрачность:
plt.scatter(x, y, alpha=0.6)
plt.savefig('scatter.png', dpi=150, bbox_inches='tight')

Сравнение: matplotlib vs pandas.plot vs seaborn

  • matplotlib: самая низкоуровневая и гибкая библиотека; требует больше кода для настроек.
  • pandas.plot: быстрый способ визуализации DataFrame без явной работы с осами.
  • seaborn: высокоуровневый API для статистических графиков, красивые стили по умолчанию.

Выбор: для быстрой разведки — pandas.plot; для публикации — matplotlib с дополнительными настройками; для статистики и красивых визуализаций — seaborn.

Критерии приёмки

  • График отображается без исключений и ошибок в консоли;
  • Заголовок и подписи осей присутствуют и информативны;
  • Легенда есть при нескольких сериях данных;
  • График сохранён в нужном формате и разрешении.

Короткий глоссарий

matplotlib — основная библиотека для отрисовки графиков в Python. pyplot — модуль matplotlib с процедурным API (plt). pandas — библиотека для обработки табличных данных и простых визуализаций. figsize — кортеж, задающий размер рисунка в дюймах. dpi — плотность точек на дюйм при сохранении изображения.

Где учиться дальше

  • Официальная документация matplotlib и pandas содержит подробные примеры и гайды по каждому типу графика.
  • Попробуйте визуализировать реальные csv-файлы: это лучший способ отточить навык.

Важно: визуализация — инструмент коммуникации. Делайте графики понятными для аудитории: подписи, легенды и комментарии иногда важнее эстетики.

Подведение итогов

  • Jupyter + matplotlib/pandas позволяет быстро создавать и настраивать графики;
  • Проверяйте соответствие длин осей и выбирайте тип визуализации по задаче;
  • Используйте готовые сниппеты, стили и сохранение в высоком разрешении для отчётов.

Summary:

  • Начните с простых графиков, затем переходите к форматированию;
  • Для больших наборов данных используйте агрегацию или методы, снижающие визуальную перегрузку;
  • Документируйте и сохраняйте версии графиков для воспроизводимости.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Подготовка к техническому собеседованию разработчика
Карьера

Подготовка к техническому собеседованию разработчика

Запуск мастера устранения неполадок в Windows
Windows

Запуск мастера устранения неполадок в Windows

Как создать мем: полное руководство
Социальные сети

Как создать мем: полное руководство

Как устранить BSOD 0x0000003B в Windows
Windows

Как устранить BSOD 0x0000003B в Windows

Clone Stamp в Photoshop — подробное руководство
Графика

Clone Stamp в Photoshop — подробное руководство

Синхронизация звука и видео в After Effects
Видео монтаж

Синхронизация звука и видео в After Effects