$ sudo teach IT

Представьте, что вам дали таблицу с продажами интернет-магазина за последний год. В ней тысячи строк: даты, товары, категории, цены, количество заказов, выручка. Теоретически вы можете изучить все данные глазами, но на практике это будет долго, неудобно и неэффективно.

А теперь представьте, что вы построили один график. За несколько секунд становится понятно, в какие месяцы продажи росли, когда был спад, какие категории товаров приносят больше всего денег и существуют ли какие-то закономерности.

Именно поэтому визуализация данных является одним из важнейших инструментов аналитика, дата-сайентиста и разработчика. Хороший график позволяет увидеть то, что сложно заметить в таблице. Более того, визуализация помогает не только анализировать данные самостоятельно, но и объяснять результаты другим людям.

В этом курсе мы будем изучать две популярные библиотеки Python: Matplotlib и Seaborn. Они используются в аналитике данных, машинном обучении, научных исследованиях, бизнес-отчетности и многих других областях.

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

Что вы узнаете в рамках статьи

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

Ключевые термины

  • Визуализация данных — представление данных в графическом виде.
  • График — визуальное отображение информации.
  • Признак — отдельная характеристика объекта или записи.
  • Категориальный признак — данные, разбитые на группы или категории.
  • Числовой признак — данные, представленные числами.
  • Matplotlib — библиотека Python для построения графиков.
  • Ось X — горизонтальная ось графика.
  • Ось Y — вертикальная ось графика.

Зачем нужны графики

Когда мы работаем с данными, нас редко интересуют сами цифры. Обычно нас интересуют ответы на вопросы.

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

Попробуем представить такие данные в виде обычной таблицы:

Месяц      Продажи
Январь     12000
Февраль    13500
Март       17000
Апрель     15000
Май        21000

Таблица содержит информацию, но заметить тренд не так просто. Если же построить график, мы мгновенно увидим рост продаж и сможем оценить динамику.

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

Когда графики помогают особенно сильно

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

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

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

Основные типы данных

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

  • категориальные;
  • числовые.

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

Категориальные признаки

Категориальные признаки описывают принадлежность объекта к определенной группе.

Например:

Город
Ереван
Таллинн
Берлин
Париж

Или:

Категория товара
Ноутбук
Телефон
Планшет
Монитор

Или:

Статус заказа
Новый
Оплачен
Отправлен
Доставлен

Здесь нас интересуют именно категории, а не числовые значения. Для таких данных чаще всего используют столбчатые и круговые диаграммы. Они позволяют наглядно сравнивать категории между собой, показывать их количество, долю или другие показатели, связанные с каждой группой. Например, с помощью столбчатой диаграммы удобно сравнить продажи по категориям товаров, а круговая диаграмма помогает показать, какую долю в общих продажах занимает каждая категория.

Числовые признаки

Числовые признаки содержат измеримые значения.

Например:

Возраст
18
25
31
42

Или:

Зарплата
1200
1800
2500
3000

Или:

Количество продаж
25
40
15
70

Здесь нас уже интересуют сами числа. Для анализа числовых признаков часто используют гистограммы, линейные графики и диаграммы рассеяния. Они помогают изучать распределение данных, отслеживать изменения показателей и находить взаимосвязи между числовыми значениями. Такие графики помогают изучать распределения и взаимосвязи между значениями.

Как выбрать подходящую визуализацию

Один из самых распространенных вопросов новичков звучит так: «Как понять, какой график использовать?». Существует простое правило. Сначала задайте себе вопрос: что именно вы хотите показать?

  • Если нужно сравнить категории, обычно используют столбчатую диаграмму. Например, с помощью такого графика можно сравнить продажи по городам, количество заказов по категориям товаров или число клиентов по разным странам.
  • Если нужно показать изменение показателя во времени, обычно используют линейный график. Например, можно показать продажи по месяцам, количество пользователей по дням или изменение выручки по кварталам.
  • Если нужно изучить распределение значений, используют гистограмму. Например, можно изучить распределение зарплат сотрудников, возраста клиентов или стоимости заказов.
  • Если нужно исследовать связь между двумя числовыми признаками, используют диаграмму рассеяния. Например, можно исследовать связь между расходами на рекламу и продажами, ростом и весом человека или количеством часов обучения и результатом экзамена.

Со временем выбор подходящего графика станет происходить автоматически.

Первый график в Matplotlib

Теперь создадим первый настоящий график. Перед установкой библиотек рекомендуется создать отдельное виртуальное окружение для проекта. Это позволяет изолировать зависимости и избежать конфликтов между различными проектами.

Создать виртуальное окружение можно командой:

python -m venv env

После этого его необходимо активировать.

Для Windows:

env\Scripts\activate

Для Linux и macOS:

source venv/bin/activate

После активации окружения можно установить Matplotlib:

pip install matplotlib

Теперь все необходимые зависимости будут установлены только внутри текущего проекта.

После установки можно написать следующий код:

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр", "Май"]
sales = [12000, 13500, 17000, 15000, 21000]

plt.plot(months, sales)

plt.show()

После запуска программы откроется окно с графиком. Разберем код подробнее. На данном этапе этого уже достаточно для создания простых визуализаций. Но график выглядит довольно скучно. Давайте немного его улучшим.

Добавляем заголовок и подписи

import matplotlib.pyplot as plt

months = ["Янв", "Фев", "Мар", "Апр", "Май"]
sales = [12000, 13500, 17000, 15000, 21000]

plt.plot(months, sales)

plt.title("Продажи по месяцам")
plt.xlabel("Месяц")
plt.ylabel("Выручка")

plt.show()

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

Наиболее частые ошибки

  • Строить график без понимания данных
    Сначала нужно определить тип признаков и цель анализа.
  • Использовать круговые диаграммы для большого количества категорий
    Такие графики становятся нечитаемыми.
  • Не добавлять подписи осей
    Зрителю сложно понять смысл графика.
  • Использовать неподходящий тип графика
    Например, показывать временной ряд через круговую диаграмму.
  • Забывать вызывать plt.show()
    График не будет отображен.

Наиболее частые вопросы

  • Обязательно ли использовать Matplotlib, если существует Seaborn?
    Seaborn построен поверх Matplotlib, поэтому понимание основ Matplotlib очень полезно.
  • Можно ли строить графики без Pandas?
    Да. Matplotlib умеет работать с обычными списками Python.
  • Какой график использовать чаще всего?
    На практике наиболее популярны линейные графики, столбчатые диаграммы и гистограммы.
  • Нужно ли запоминать все виды графиков?
    Нет. Гораздо важнее понимать, какую задачу решает каждый тип визуализации.

Итоги

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

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

На следующий урок