В этом уроке мы пройдем агрегацию для столбчатой диаграммы. Мы разберем, какие типы столбчатых диаграмм существуют, сагрегируем данные о продажах, найдем суммарные продажи по категориям товаров и визуализируем их в виде столбчатых диаграмм.
Столбчатые диаграммы — это полезный инструмент визуализации, когда нужно сравнить числовые величины по разным категориям. Знания из урока помогут строить отчеты с использованием столбчатых диаграмм.
Столбчатая диаграмма
Столбчатые диаграммы используют, чтобы визуализировать, какое число соответствует каждой категории.
Предположим, у нас есть таблица суммарных продаж товаров по разным типам:
total_sales
sub_category | sales |
---|---|
Accessories | 13285.68 |
Appliances | 6830.277 |
Art | 2820.666 |
... | ... |
В этой таблице есть два столбца:
- Тип товара — значение, которое выражается строкой. Категориальное значение
- Суммарные продажи — числовое значение
В столбчатой диаграмме каждая категория наносится отдельным делением на одну из осей диаграммы. Это деление — основание столбца. По другой из осей мы откладываем числовое значение категории. Высота столбца будет равна этому числу.
Столбчатые диаграммы бывают:
- Вертикальные
- Горизонтальные
В вертикальной диаграмме столбцы направлены по вертикальной оси, а в горизонтальной — по горизонтальной оси.
Вертикальная столбчатая диаграмма по таблице выше будет выглядеть так:
На этом графике мы изобразили вертикальную столбчатую диаграмму суммарных продаж.
Горизонтальная столбчатая диаграмма выглядит аналогично, но с перевернутыми осями:
Мы видим, что горизонтальная столбчатая диаграмма отличается от вертикальной только расположением признаков по осям.
Агрегация суммарных продаж для каждого товара
Теперь представим, что у нас есть таблица продаж товаров по разным категориям и регионам:
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 — прибыль по заказу
Мы хотим получить таблицу суммарных продаж по подкатегориям товаров и визуализировать ее с помощью столбчатой диаграммы. Для этого мы агрегируем таблицу sales по подкатегориям товаров. Мы будем использовать столбцы sub_category
и sales
.
Агрегация для визуализации столбчатой диаграммой «схлопывает» данные о продажах, суммируя все продажи по каждой из категорий. Так мы получаем суммарные продажи по каждой уникальной категории товаров и, например, можем узнать наиболее прибыльную категорию.
Агрегируем таблицу продаж в суммарные продажи по подкатегориям товаров средствами SQL.
Для этого мы откроем базу данных bar_chart. В ней содержится таблица sales
, в которой 1000 строк и 20 столбцов. Ее начало мы видели в таблице Sales выше. Напишем SQL-запрос для агрегации:
SELECT
sub_category,
SUM(sales) AS total_sales
FROM sales
GROUP BY sub_category;
В результате этого запроса мы получили таблицу:
total_sales
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
все точки на запятые и построим столбчатую диаграмму:
На рисунке мы видим столбчатую диаграмму суммарных продаж по подкатегориям товаров.
Отсортируем категории по убыванию продаж, чтобы наглядно увидеть самые прибыльные категории. Напишем SQL-запрос с сортировкой по убыванию:
SELECT
sub_category,
SUM(sales) AS total_sales
FROM sales
GROUP BY sub_category
ORDER BY total_sales DESC;
С помощью такого запроса мы получили отсортированную таблицу:
ordered_total_sales
sub_category | total_sales |
Phones | 38570.604 |
Chairs | 32388.257999999994 |
Machines | 26854.097 |
Tables | 24083.6545 |
Binders | 21403.09499999999 |
Storage | 20823.572 |
Accessories | 13285.68 |
Supplies | 12940.315999999995 |
Appliances | 6830.276999999999 |
Bookcases | 6707.1536 |
Furnishings | 6706.3640000000005 |
Paper | 6648.283999999999 |
Copiers | 5309.888000000001 |
Art | 2820.6659999999983 |
Envelopes | 1605.862 |
Labels | 1308.4160000000002 |
Fasteners | 380.5800000000001 |
Ссылка на таблицу
Здесь представлена отсортированная по убыванию таблица продаж по подкатегориям товаров.
Теперь построим по этой таблице горизонтальную столбчатую диаграмму. Для этого скопируем таблицу в Google Sheets и выберем тип диаграммы «Линейчатая»:
Мы построили горизонтальную столбчатую диаграмму по отсортированной таблице суммарных продаж по категориям. Видим, что самые прибыльные категории — это телефоны и стулья.
Теперь попробуем исключить из агрегации штат Нью-Йорк. Напишем агрегацию на SQL с условием:
SELECT
sub_category,
SUM(sales) AS total_sales
FROM sales
WHERE state <> 'New York'
GROUP BY sub_category
ORDER BY total_sales DESC;
Посмотрим на таблицу, которую мы получили:
total_sales_without_NY
sub_category | total_sales |
Phones | 35579.044 |
Chairs | 31957.59 |
Machines | 26854.097 |
Binders | 20346.006999999998 |
Tables | 19826.6605 |
Storage | 18685.032 |
Supplies | 12797.215999999997 |
Accessories | 11828.79 |
Furnishings | 6533.994000000001 |
Bookcases | 6353.5856 |
Appliances | 6255.097 |
Paper | 5818.993999999999 |
Copiers | 4749.896000000001 |
Art | 2527.1859999999983 |
Envelopes | 1305.2619999999995 |
Labels | 1294.016 |
Fasteners | 380.5800000000001 |
Ссылка на таблицу
В этой таблице содержатся суммарные продажи по подкатегориям товаров всех штатов кроме штата Нью-Йорк.
Построим по таблице диаграмму:
Мы видим, что самыми прибыльными категориями все еще остаются телефоны и стулья.
Выводы
В этом уроке мы рассмотрели, что такое агрегация для столбчатой диаграммы. Мы получили таблицу суммарных продаж по категориям товаров, построили вертикальную столбчатую диаграмму, горизонтальную диаграмму по отсортированной таблице и нашли самые прибыльные категории товаров.
Столбчатые диаграммы часто используются, когда нужно изобразить абсолютные числовые значения по разным категориям относительно друг друга. Знания о том, как агрегировать данные для столбчатой диаграммы, позволят строить полезные и информативные отчеты.
Самостоятельная работа
Возьмите базу из урока, агрегируйте таблицу sales
и найдите суммарные продажи по разным штатам. Отсортируйте новую таблицу по убыванию продаж и постройте столбчатую диаграмму. В каких топ-трех штатах самые высокие продажи?
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.