- Круговая диаграмма
- Виды круговой диаграммы
- Агрегация для круговой диаграммы
- Кольцевая и разрезанная диаграммы
- Выводы
В этом уроке мы познакомимся с круговой диаграммой и ее видами. Мы агрегируем данные суммарных продаж по разным категориям товаров и построим разные типы круговых диаграмм.
Круговые диаграммы — удобный инструмент визуализации, когда мы хотим показать процентные соотношения числовых величин по разным категориям. Знания из этого урока позволят использовать этот инструмент визуализации в работе дата-аналитика.
Круговая диаграмма
Допустим, у нас есть таблица суммарных продаж товаров по разным категориям товаров:
total_sales
sub_category | sales |
---|---|
Accessories | 13285.68 |
Appliances | 6830.277 |
Art | 2820.666 |
... | ... |
В этой таблице есть два столбца:
- Тип товара — это значение, которое выражается строкой
- Суммарные продажи — это числовое значение
Если мы хотим посмотреть на доли продаж относительно всех продаж, то лучше использовать круговые диаграммы или Pie chart.
Посмотрим на круговую диаграмму по данным таблицы TotalSales:
В круговой диаграмме весь круг — это сумма всех продаж по всем категориям или 100%. А сумма продаж по каждой из категорий — доля, которую занимает одна категория в процентах от 100%.
Круговые диаграммы подходят для визуализации долей от целого. Мы не используем их для отображения тенденций или изменений со временем. Для таких целей лучше использовать линейный график или столбчатую диаграмму.
Виды круговой диаграммы
Круговые диаграммы бывают трех типов:
Круговая диаграмма или Pie chart
Мы видели этот тип диаграммы на рисунке выше. Каждый сегмент диаграммы — это доля в процентах от суммы всех значений по всем категориям.
Кольцевая диаграмма или Doughnut chart
Эта диаграмма похожа на круговую, только в ней есть отверстие посередине. Пример с суммарными продажами выглядит так:
Отличие кольцевой диаграммы от круговой в том, что в центре кольцевой диаграммы есть отверстие.
Разрезанная круговая диаграмма или Exploded pie chart
Это круговая или кольцевая диаграмма, только один или несколько сегментов отделены от всех остальных. Мы используем такую диаграмму, когда нужно выделить отдельные сегменты.
Разрезанная диаграмма будет выглядеть так:
Перейдем к практике и агрегируем данные о продажах для круговой диаграммы.
Агрегация для круговой диаграммы
Нам дана таблица sales
. Выполним запрос, чтобы посмотреть на содержимое таблицы:
SELECT * FROM sales;
Теперь мы видим таблицу продаж товаров по разным категориям и регионам:
Sales
order_id | order_date | ship_date | ship_mode | customer_id | customer_name | segment | country | city | state | postal_code | region | product_id | category | sub_category | product_name | sales | quantity | discount | profit |
CA-2014-103800 | 2014-01-03 00:00:00 | 2014-01-07 00:00:00 | Standard Class | DP-13000 | Darren Powers | Consumer | United States | Houston | Texas | 77095 | Central | OFF-PA-10000174 | Office Supplies | Paper | Message Book, Wirebound, Four 5 1/2" X 4" Forms/Pg., 200 Dupl. Sets/Book | 16.448 | 2 | 0.2 | 5.551199999999998 |
CA-2014-112326 | 2014-01-04 00:00:00 | 2014-01-08 00:00:00 | Standard Class | PO-19195 | Phillina Ober | Home Office | United States | Naperville | Illinois | 60540 | Central | OFF-LA-10003223 | Office Supplies | Labels | Avery 508 | 11.784 | 3 | 0.2 | 4.271699999999999 |
CA-2014-112326 | 2014-01-04 00:00:00 | 2014-01-08 00:00:00 | Standard Class | PO-19195 | Phillina Ober | Home Office | United States | Naperville | Illinois | 60540 | Central | OFF-ST-10002743 | Office Supplies | Storage | SAFCO Boltless Steel Shelving | 272.736 | 3 | 0.2 | -64.77480000000001 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
Ссылка на таблицу
В этой таблице есть столбцы:
- order_id — ID заказа
- order_date — дата заказа
- ship_date — дата отгрузки товара
- ship_mode — класс отгрузки
- customer_id — ID покупателя
- customer_name — имя покупателя
- segment — категория покупателя
- country — страна
- city — город
- state — штат/округ
- postal_code — почтовый индекс
- region — регион
- product_id — ID товара
- category — категория товара
- sub_category — подкатегория товара
- product_name — наименование товара
- sales — сумма продаж по заказу
- quantity — количество единиц товара в заказе
- discount — скидка на заказ
- profit — прибыль по заказу
Мы хотим получить таблицу суммарных продаж по подкатегориям товаров, чтобы нарисовать круговую диаграмму. Агрегация для круговой диаграммы будет такой же, как и для столбчатой, потому что Google Sheets считает проценты для круговой диаграммы за нас.
Агрегируем таблицу Sales по подкатегориям товаров. Мы просуммируем все продажи по каждой отдельной категории с помощью функции GROUP BY
. Мы будем использовать столбцы sub_category
и sales
. По столбцу sub_category
мы агрегируем данные, а по столбцу sales
будем считать суммарные продажи по каждой категории:
SELECT
sub_category,
SUM(sales) AS total_sales
FROM sales
GROUP BY sub_category;
Мы получили такую таблицу:
TotalSales
sub_category | total_sales |
Paper | 6648.283999999999 |
Labels | 1308.4160000000002 |
Storage | 20823.572 |
Binders | 21403.09499999999 |
Art | 2820.6659999999983 |
Chairs | 32388.257999999994 |
Phones | 38570.604 |
Fasteners | 380.5800000000001 |
Furnishings | 6706.3640000000005 |
Accessories | 13285.68 |
Envelopes | 1605.862 |
Bookcases | 6707.1536 |
Appliances | 6830.276999999999 |
Tables | 24083.6545 |
Supplies | 12940.315999999995 |
Machines | 26854.097 |
Copiers | 5309.888000000001 |
Ссылка на таблицу
В этой таблице мы видим суммарные продажи по разным категориям товаров.
Теперь построим круговую диаграмму по этой таблице. Скопируем ее в Google Sheets и заменим в столбце total_sales
все точки на запятые. Вставим диаграмму и выберем тип диаграммы «Круговая диаграмма». Мы получили диаграмму, которую видели выше:
Мы агрегировали данные продаж по разным категориям продаж и построили круговую диаграмму. Видим, что под каждой категорией указан процент продаж по категории относительно общих продаж.
Убедимся, что Google Sheets считает процентные значения по категориям. Выполним запрос, который выведет сумму всех продаж:
SELECT sum(sales)
FROM sales;
Мы выполнили запрос и получили значение суммы всех продаж 228666.7670999999
.
Ссылка на таблицу
Скопируем это значение.
Теперь мы можем составить запрос, который посчитает процентные доли суммарных продаж по каждой категории:
SELECT
sub_category,
SUM(sales) / 228666.7670999999 * 100 AS total_sales_per
FROM sales
GROUP BY sub_category;
В этом запросе мы рассчитали процент суммарных продаж по категориям от суммы всех продаж. Переменная total_sales_per
— это процент продаж по категориям.
Запрос выдал нам таблицу:
sub_category | total_sales_per |
---|---|
Paper | 2.907411551015889 |
Labels | 0.5721933346911785 |
Storage | 9.106514367649012 |
Binders | 9.359949970622557 |
Art | 1.2335268634669911 |
Chairs | 14.163955003499066 |
Phones | 16.8676036702493 |
Fasteners | 0.1664343292322692 |
Furnishings | 2.932810956769766 |
Accessories | 5.810061588088113 |
Envelopes | 0.7022717032150669 |
Bookcases | 2.9331562627405523 |
Appliances | 2.987000291569698 |
Tables | 10.532205796860636 |
Supplies | 5.659027835182089 |
Machines | 11.743769040236725 |
Copiers | 2.3221074349111235 |
Ссылка на таблицу
Мы получили таблицу с процентными долями продаж по категориям. В этой таблице два столбца:
- sub_category — категория, по которой мы агрегировали данные продаж
- total_sales_per — процентные доли продаж по категориям относительно суммарных продаж
Скопируем эту таблицу в Google Sheets и построим круговую диаграмму:
Мы построили круговую диаграмму по процентам от продаж. Видим, что она не отличается от диаграммы выше, когда мы строили круговую диаграмму по абсолютным значениям продаж. Это означает, что Google Sheets подсчитывает проценты автоматически.
Теперь построим другие типы круговых диаграмм: кольцевую и разрезанную круговую.
Кольцевая и разрезанная диаграммы
Будем использовать таблицу TotalSales. Выделим столбцы с таблицей в Google Sheets и вставим диаграмму. Выберем тип диаграммы «Кольцевая диаграмма»:
Мы построили кольцевую диаграмму суммарных продаж. Как видим, кольцевая диаграмма ничем не отличается от круговой кроме визуальных отличий.
Google Sheets предоставляет возможности строить объемные круговые диаграммы. Снова выделим данные о продажах и построим диаграмму. В типе диаграммы выберем «Объемная круговая диаграмма»:
На рисунке мы видим объемную диаграмму. Процентные соотношения продаж по категориям остаются теми же.
Чтобы превратить любую круговую диаграмму в разорванную, нужно перейти в «Дополнительные» -> «Сектор». В этой вкладке мы выделим отдельные сектора, если укажем расстояние сектора от центра.
Подсветим три категории с максимальными продажами. Для этого выполним запрос к таблице sales
с сортировкой по убыванию по суммарным продажам:
SELECT
sub_category,
SUM(sales) AS total_sales
FROM sales
GROUP BY sub_category
ORDER BY total_sales DESC;
Ссылка на таблицу
Мы видим, что категории с максимальными продажами — это Phones
, Chairs
и Machines
. Выделим эти категории и построим разорванную круговую диаграмму. Для этого выберем во вкладке «Сектор» Phones
и укажем расстояние от центра 25%. То же самое мы проделаем с категориями Chairs
и Machines
и получим диаграмму:
Мы выбрали три категории с максимальными продажами, изменили расстояние секторов от центра и получили разорванную диаграмму.
Круговые, кольцевые и разорванные диаграммы часто используются для визуализации данных. Они лучше всего подходят, когда нужно показать процентные соотношения по разным категориям.
Выводы
В уроке мы определили, что такое круговая диаграмма и когда ее лучше использовать. Мы агрегировали данные суммарных продаж по категориям товаров и построили круговую, объемную круговую и кольцевую диаграммы.
Также мы посчитали процентные соотношения продаж по категориям и убедились, что диаграмма не отличается от построенной по абсолютным значениям продаж. Мы увидели, что разные круговые диаграммы отличаются внешним видом, но процентные соотношения продаж те же.
Умение строить круговые диаграммы поможет в работе, когда не важны тренды и нужно показать процентные соотношения от целого.
Самостоятельная работа
Для самостоятельной работы мы возьмем базу данных из урока. Агрегируйте суммарную прибыль profit
по категориям товаров sub_category
и постройте круговую диаграмму. Найдите три самые прибыльные категории товаров и постройте по ним разорванную диаграмму. Отличается ли круговая диаграмма по прибыли от круговой диаграммы по продажам?
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.