В этом уроке мы познакомимся с круговыми диаграммами, или как их еще называют, pie charts.
Для начала давайте проверим, что у нас есть подключение к базе данных. Заходим в Superset, открываем настройки и смотрим список подключений. В нашем случае нам нужен PostgreSQL.
С данными в Superset можно работать по-разному. Можно использовать CSV-файлы, Excel-таблицы, Google Sheets или подключаться напрямую к базам данных. Практически с любым источником данных Superset дружит через API, что очень удобно.
Создадим нашу круговую диаграмму. Визуализириуем суммы покупок разных возрастных категорий. Нам понадобится SQL-запрос, потому что данные нужно немного подготовить:
SELECT
CASE
WHEN age < 25 THEN '18-24'
WHEN age BETWEEN 25 AND 34 THEN '25-34'
WHEN age BETWEEN 35 AND 44 THEN '35-44'
WHEN age BETWEEN 45 AND 54 THEN '45-54'
ELSE '55+'
END AS age_group,
SUM(p.price * s.quantity) AS total_revenue
FROM sales s
JOIN customers c ON s.customer_id = c.customer_id
JOIN products p ON s.product_id = p.product_id
GROUP BY age_group
ORDER BY age_group;
Снова сохраняем этот запрос как датасет. Superset будет использовать его как источник данных для нашей диаграммы.
Теперь создаем саму диаграмму. Выбираем тип Pie Chart и начинаем настройку. В Dimensions добавляем age_group – это будет наше основное разделение на секторы по возрастным группам. В Metrics ставим sum(total_revenue) – будем смотреть суммы продаж.
Также можно изменять отображение меток - показывать просто значения, можно проценты, а можно и то, и другое вместе. Легенду тоже можно двигать – вправо, влево, вверх или вниз.
Важный совет из практики: не пытайтесь показать на одной диаграмме. Если вам нужно показать и суммы продаж, и количество продаж – лучше сделайте две отдельные диаграммы. А потом их можно будет разместить рядом на дашборде.
И не забываем последний шаг – сохраняем нашу диаграмму. Теперь её можно будет использовать в дашбордах или просто обновлять данные, когда нужно.
Выводы
Сегодня мы научились создавать круговые диаграммы в Apache Superset. Круговые диаграммы – это отличный способ показать структуру данных и сравнить их между собой. Теперь вы можете использовать этот инструмент для анализа данных и принятия обоснованных решений.
Самостоятельная работа
В уроке «Подключение к данным» мы подключили базу flightsdb. В ней содержатся данные о авиаперевозках за два месяца — с 16 июля по 14 сентября 2017 года.
Схема базы данных выглядит так:
Задание № 1
Авиаперевозчикам интересно узнать распределение проданных билетов по классам обслуживания. Представьте полученные данные в виде круговой диаграммы.
Нажмите сюда, чтобы увидеть подсказку
Чтобы получить необходимые данные, в SQL Lab нужно использовать следующий запрос:
SELECT
fare_conditions,
COUNT(*) AS tickets
FROM
ticket_flights
GROUP BY
fare_conditions;
Далее в меню CREATE CHART выберите Pie Chart и следующие данные для визуализации:
DIMENTIONS
—fare_conditions
METRICS
—tickets
Задание № 2
На этот раз анонимная авиакомпания решила арендовать новые самолеты. Для этого она хочет изучить самые популярные модели.
Сформируйте данные о моделях самолетов и количестве проданных билетов на рейсы этих моделей. Представьте полученную информацию на круговой диаграмме.
Нажмите сюда, чтобы увидеть подсказку
Чтобы получить необходимые данные, в SQL Lab нужно использовать следующий запрос:
SELECT
aircrafts_data.model,
COUNT(*) AS passengers_count
FROM
flights
INNER JOIN
ticket_flights
ON flights.flight_id = ticket_flights.flight_id
INNER JOIN
aircrafts_data
ON flights.aircraft_code = aircrafts_data.aircraft_code
GROUP BY
aircrafts_data.model;
В меню CREATE CHART выбираем Pie Chart и следующие данные для визуализации:
DIMENTIONS
—model
METRICS
—passengers_count
Диаграмма будет выглядеть так:
Дополнительные материалы
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.