Зарегистрируйтесь, чтобы продолжить обучение

Как устроены графики Продвинутая аналитика на SQL

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

Визуализации

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

DailySales

order_date sales profit
2014-01-03 16,448 5,5512
2014-01-04 288,06 -65,9901
2014-01-05 19,536 4,884
2014-01-06 4407,1 1358,0524
... ... ...

В ней содержатся поля:

  • order_date — дата заказа
  • sales — суммарные продажи за день
  • profit — суммарная прибыль за день

Эта таблица сама по себе уже представляет отчет: день -> продажи и прибыль за день. Но нам будет проще анализировать данные, если мы построим графики — визуализируем их.

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

Перед тем, как разобрать работу с графиками, рассмотрим, с какими типами признаков нам предстоит работать.

Типы признаков

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

  • Числовые
  • Категориальные

Числовые признаки — это признаки, которые содержат только числа. Например, температуру воздуха мы измеряем в виде числа. В таблице DailySales поля sales и profit — это числовые признаки.

Дату и время тоже можно представить в виде числа в формате timestamp. Этот показывает количество секунд от полуночи 1 января 1970 года до текущих даты и времени.

Категориальные признаки — это наименования или метки. Например, в каталоге с продуктами мы видим категории «Овощи и фрукты», «Заморозка», «Мясо». В этом случае тип признака — категориальный.

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

При этом даже если мы поставим в соответствие каждой категории число, мы не сможем оперировать с ними как с числовыми признаками. Например, мы не можем сравнить, что больше — «Овощи и фрукты» или «Мясо». Но мы можем сравнить температуру воздуха: 15 градусов по Цельсию больше, чем 0 градусов.

Рассмотрим агрегированную таблицу с суммарными продажами по отдельным категориям товаров:

CategoriesSales

category sales
Furniture 13679,808
Office Supplies 10021,766
Technology 7149,46

В этой таблице категориальный признак — category, а числовой — sales.

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

  • Независимая переменная — это переменная, которая строится по горизонтальной оси и не зависит от других переменных. Например, если мы строим график зависимости температуры от времени, то время будет независимым показателем
  • Зависимая переменная — это одна или несколько переменных, которые зависят от других переменных и строятся по вертикальной оси. В примере с температурой и временем, температура будет зависимым показателем, так как она меняется в зависимости от времени

Допустим, мы хотим построить график продаж по категориям товаров. Категория будет независимым признаком, а продажи — зависимым. Во временном графике продаж и прибыли время будет независимым признаком, а продажи и прибыль — зависимыми.

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

В этом уроке мы рассмотрим следующие типы графиков:

  • Линейный график (linear chart)
  • Столбчатая диаграмма (bar chart)
  • Круговая диаграмма (pie chart)
  • Точечная диаграмма (scatter chart)

Начнем с линейного графика.

Линейный график

Здесь и дальше мы будем работать в Google Sheets c этой таблицей.

Посмотрим еще раз на таблицу подневных продаж и прибыли:

DailySales

order_date sales profit
2014-01-03 16,448 5,5512
2014-01-04 288,06 -65,9901
2014-01-05 19,536 4,884
2014-01-06 4407,1 1358,0524
... ... ...

ссылка на DB Fiddle с этим датасетом.

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

Линейный график — это зависимость одного числового признака от времени. Формат timestamp позволяет перевести даты и время в числа, поэтому линейный график — это зависимость числового признака от числового, где независимая переменная — время.

Построим такой график. Для этого в Google Sheets переходим в лист DailySales и видим таблицу с данными:

daily_sales

Чтобы построить график, выделим столбцы A:C. Во вкладке «Вставка» найдем «Диаграмма» и вставим диаграмму. В меню справа в «Тип диаграммы» нужно выбрать тип «График»:

linear_chart

В итоге мы получили линейный график продаж и прибыли в разрезе времени.

Чтобы графики не выглядели однообразно, мы можем менять цвет линии, фона, стиль, толщину линии и другие параметры. Это называется кастомизацией — изменение внешнего вида графика под свои нужды. Google Sheets предоставляет возможности видоизменения графиков.

Кастомизируем график. Нажмем на его название и впишем «Линейный график продаж и прибыли». Если щелкнуть по самому графику, можно изменить его цвет, стиль линии и другие параметры. Например, можно сделать линию графика profit штриховой и задать толщину линии 4px:

linear_chart2

Перейдем на вкладку «Стиль диаграммы» и заменим фон на черный. Последовательно щелкнем на все тексты на графике и заменим цвет текста на белый:

linear_chart3

На этом графике мы заменили цвет фона и цвет текста.

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

Рассмотрим вторую таблицу с суммарными продажами по категориям товаров:

CategoriesSales

category sales
Furniture 13679,808
Office Supplies 10021,766
Technology 7149,46

Категории товаров находятся в колонке category, а суммарные продажи — в sales. Мы хотим визуализировать продажи, чтобы было видно, насколько продажи по каждой из категорий отличаются друг от друга. Для этого подходит столбчатая диаграмма — зависимость числового признака от категориального.

Откроем лист CategoriesSales. Мы видим таблицу продаж в разрезе категорий, которую мы рассмотрели выше. Вставим диаграмму и выберем тип «Столбчатая диаграмма». Изменим заголовок и кастомизируем по своему усмотрению:

bar_chart

Мы построили столбчатую диаграмму суммарных продаж по категориям товаров. Мы видим, что больше всего покупатели потратили на категорию Furniture.

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

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

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

Построим круговую диаграмму по таблице продаж по категориям. Для этого в настройке «Тип диаграммы» выберем круговую диаграмму:

pie_chart

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

Сравним столбчатую диаграмму и круговую:

  • С помощью столбчатой диаграммы мы можем визуализировать и абсолютные значения продаж по категориям, и относительные
  • С помощью круговой диаграммы мы можем посмотреть только на процентные доли. В качестве 100% принимается сумма всех продаж, даже если таблица содержит только абсолютные значения

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

Мы используем доли от целого, поэтому в формуле должно быть представлено целое. Мы принимаем за 100% суммарные продажи, а процентная доля от продаж равна продажам, поделенным на суммарные продажи:

=B2/СУММ(B2:B4) * 100

Чтобы формулу можно было перетянуть на другие строки, изменим относительные ссылки на абсолютные с помощью символа $:

=B2/СУММ(B$2:B$4) * 100

Итоговая таблица с округленными значениями будет выглядеть так:

CategoriesSales

category sales sales_percent
Furniture 13679,808 44,3
Office Supplies 10021,766 32,5
Technology 7149,46 23,2

Сравниваем ее со значениями процентов на круговой диаграмме и видим, что значения одинаковые.

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

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

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

Переходим на лист DailySales и выделяем столбцы B:C. Построим по ним диаграмму. Указываем точечный тип диаграммы:

scatter_chart

Мы построили точечную диаграмму по прибыли и продажам компании. На диаграмме заметим, что обычно чем больше продажи, тем больше и прибыль.

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

Выводы

В этом уроке мы рассмотрели четыре типа графиков:

  • Линейный график
  • Столбчатая диаграмма
  • Круговая диаграмма
  • Точечная диаграмма

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

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


Самостоятельная работа

Чтобы выполнить самостоятельную работу, вам нужно скопировать таблицу с данными по ссылке.

Постройте следующие графики и диаграммы на основе скопированного дата-сета:

  • Линейный график
  • Столбчатая диаграмма
  • Круговая диаграмма
  • Точечная диаграмма

Дополнительные материалы

  1. Google Sheets — данные о ежедневных продажах

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff