Бизнес-аналитика с помощью Power BI

Построение отчета на базе Sankey chart

В материале рассматриваются два инструмента визуализации потоков в Microsoft Power BI: диаграмма Санкей (Sankey chart) для миграции энергетических мощностей между отраслями и хордовая диаграмма (Chord chart) для исходящих финансовых потоков стран. Показаны подготовка данных, создание связей по идентификаторам, настройка подписей, веса и фильтров, а также практическая интерпретация диаграмм.

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснять назначение диаграммы Санкей и хордовой диаграммы для визуализации потоков.
2. Определять структуру данных, необходимую для построения диаграммы Санкей и хордовой диаграммы.
3. Создавать таблицы через «Ввод данных» (Enter Data) и загружать данные из Excel в Power BI.
4. Устанавливать связи между таблицами по ключевым полям.
5. Настраивать диаграмму Санкей: источник, назначение, вес, подписи.
6. Применять фильтры по весу и годам для повышения читаемости.
7. Интерпретировать энергетические и финансовые потоки.
8. Оценивать, в каких предметных областях применимы такие визуализации.
Показывать лекцию целиком
Краткое изложение

Файлы для практики: Energy-Data.xlsx, world-countries.json, Work-Bank-US-Remittance-Outflow

Анализ энергетических потоков между отраслями

Рассмотрим набор данных для визуализации. В нём есть ID, ID отрасли, название отрасли, Source (источник) и Target (цель). Поля Source и Target ссылаются на Node ID (идентификатор узла). Source — код источника, Target — код целевой отрасли. Например, запись может описывать объём перехода из нулевой отрасли в первую.

Набор данных показывает карту перехода энергетических мощностей из одной отрасли в другую. Речь идёт о том, как энергия, производимая одной отраслью, используется в другой. Например, угольная промышленность имеет код 9. Из неё в отрасль 4 идёт объём 75 571. Значительные потоки также идут из отраслей 2, 5 и 15. Отрасль 2 обозначена как Liquid (жидкость), отрасль 5 связана с газом, отрасль 15 — с электростанциями и электросетями. Часть названий в датасете условна, но для визуализации это не критично.

Чтобы отобразить потоки, сначала копируем список всех отраслей. В Power BI используем Enter Data (Ввод данных) — режим, когда данные не берутся из внешнего источника, а вставляются вручную. Создаём таблицу Source со списком отраслей. Затем вставляем те же данные и создаём таблицу Target — целевые отрасли. После этого копируем объёмы энергии и создаём таблицу Weight (вес).

Далее связываем таблицы. Node ID источника должен соответствовать полю Source в таблице Weight. Node ID цели должен соответствовать полю Target в таблице Weight. Так становится понятно, что для получения названия источника нужно перейти в таблицу Source и взять Node Name, а для цели — аналогично использовать таблицу Target.

Теперь можно добавить специальный визуальный элемент — Sankey chart (диаграмма Санкей). В настройках задаём:

Включаем Data labels (подписи данных) и при необходимости Force display (принудительное отображение). Диаграмма показывает миграцию энергетических потоков. Можно выбрать, например, Nuclear (атомная электростанция), и увидеть, как из атомного сектора энергия идёт в Thermal generation (тепловую генерацию). Затем часть тепловой энергии уходит в Grid (электросеть), часть — в Losses (потери). Из электросети энергия распределяется в Industry (промышленность).

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

Для фильтрации используем числовое поле Weight. Можно оставить значения «больше или равно» 100, затем 500. Тогда на диаграмме останутся только крупнейшие потоки. Это делает визуализацию более читаемой.

Анализ финансовых потоков между странами

Теперь рассмотрим другой набор данных. В нём есть перечень стран, финансовый год с 2006 по 2016 год и показатель Outflow (исходящий поток). Outflow показывает, какой объём в миллионах долларов ушёл из страны, то есть покинул государство. Это данные Всемирного банка. Например, из России вытекло около 12 млрд долларов, из Китая — 2 млрд, из США — 50 млрд. У Швейцарии и Саудовской Аравии также высокие показатели. В 2007 году у России было почти 20 млрд долларов исходящих потоков.

Загружаем Excel-файл, выбираем лист 2. В Power BI через Transform Data (Преобразование данных) удаляем лишние столбцы. Они появились потому, что в Excel остался объект таблицы, а Power BI воспринимает его как таблицу внутри листа. После удаления лишних столбцов загружаем данные.

Затем импортируем ещё одну компоненту — Chord chart (хордовая диаграмма). В настройках задаём:

Если отобразить все страны сразу, диаграмма становится нечитаемой. Поэтому применяем фильтры. Берём последние три года: 2014, 2015, 2016. Затем фильтруем значение: больше 10 000. После этого диаграмма становится обозримой. Видно, что в 2014, 2015 и 2016 годах наибольший вклад у США. В принимающей стороне, то есть в годах, происходит автоматическая сортировка по убыванию объёма финансовых потоков. Толщина прямоугольника страны соответствует показателю. Россия за эти три года занимает четвёртое место в мире по исходящим финансовым потокам после США, Саудовской Аравии и Швейцарии.

Можно усилить фильтр и оставить значения больше 30 000. Тогда останутся только США, Саудовская Аравия и Россия. Так удобно анализировать крупнейшие потоки. Внешний вид диаграммы можно менять: настроить размер подписей, фон, границу, ширину и высоту. Хордовая диаграмма решает задачу отображения сложных взаимосвязей между данными. Она подходит для любых предметных областей, где есть миграция ресурса из одной компоненты в другую.

Краткие итоги

В основе рассмотренного подхода лежит модель потока «источник — цель — вес». Сначала данные приводятся к виду, где каждая связь имеет отправителя, получателя и количественную меру. Затем в Power BI создаются справочники узлов и таблица связей. Ключевым оказывается не название, а идентификатор: именно по нему соединяются таблицы, а человекочитаемые подписи подтягиваются отдельно. Такой порядок снижает риск ошибок и делает модель пригодной для повторного использования.

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

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

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

В Power BI можно визуализировать потоки между объектами. Рассматриваются два инструмента: Sankey chart (диаграмма Санкей) и Chord chart (хордовая диаграмма).

Первый набор данных описывает переход энергетических мощностей между отраслями. В таблице есть ID, ID отрасли, название отрасли, Source (источник) и Target (цель). Source и Target ссылаются на Node ID. Source — код источника, Target — код целевой отрасли. Например, запись может означать переход из нулевой отрасли в первую. Данные показывают, как энергия одной отрасли используется в другой. Например, из угольной промышленности с кодом 9 в отрасль 4 идёт объём 75 571. Значимые потоки есть также из отраслей 2, 5 и 15. Отрасль 2 обозначена как Liquid (жидкость), 5 связана с газом, 15 — с электростанциями и сетями.

Для построения диаграммы Санкей:

  1. Копируем список отраслей.
  2. В Power BI через Enter Data (Ввод данных) создаём таблицу Source.
  3. Вставляем те же данные и создаём таблицу Target.
  4. Копируем объёмы и создаём таблицу Weight (вес).
  5. Связываем Source.Node ID с Weight.Source, а Target.Node ID — с Weight.Target.
  6. Добавляем визуальный элемент Sankey chart.
  7. Настраиваем поля: Source — Source, Destination — Target, Weight — Weight, Source Labels — Node Name из Source, Destination Labels — Node Name из Target.
  8. Включаем Data labels (подписи данных) и при необходимости Force display.

Диаграмма показывает миграцию потоков. Например, из Nuclear (атомная станция) энергия идёт в Thermal generation (тепловую генерацию). Часть уходит в Grid (электросеть), часть — в Losses (потери). Из сети энергия распределяется в Industry (промышленность). Так видна эволюция источника: общая энергия, затем распределение по уровням. При наведении мыши видна отдельная связь. Такой подход применим не только к энергетике: можно показывать миграцию сотрудников по департаментам, трудоустройство выпускников и другие потоки ресурса.

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

Второй набор данных — из Excel. В нём есть страны, финансовый год с 2006 по 2016 год и Outflow (исходящий поток). Outflow — объём в миллионах долларов, который ушёл из страны. Это данные Всемирного банка. Например, из России — около 12 млрд долларов, из Китая — 2 млрд, из США — 50 млрд. У Швейцарии и Саудовской Аравии также высокие значения. В 2007 году у России было почти 20 млрд.

Данные загружаются из Excel, лист 2. Через Transform Data удаляются лишние столбцы, которые появились из-за объекта таблицы в Excel. Затем импортируется Chord chart (хордовая диаграмма). В настройках задаются:

Если показать все страны, диаграмма нечитаема. Поэтому фильтруют последние три года: 2014, 2015, 2016. Затем оставляют значения больше 10 000. После этого видно, что в эти годы наибольший вклад у США. В годах происходит автоматическая сортировка по убыванию объёма. Толщина прямоугольника страны соответствует величине показателя. Россия за эти годы четвёртая после США, Саудовской Аравии и Швейцарии. Если оставить значения больше 30 000, останутся США, Саудовская Аравия и Россия. Внешний вид можно менять: размер подписей, фон, границу, ширину и высоту. Хордовая диаграмма подходит для отображения сложных взаимосвязей и применима в разных предметных областях.

Выводы

1. Диаграмма Санкей показывает миграцию ресурса между узлами через потоковые связи.
2. Для диаграммы Санкей нужны источник, цель и вес потока.
3. Подписи узлов берутся из отдельных справочников Source и Target.
4. Связи в Power BI строятся по идентификаторам, а не по названиям.
5. «Ввод данных» позволяет быстро создать справочники без внешнего источника.
6. Фильтр по весу помогает оставить только значимые потоки.
7. Хордовая диаграмма отображает взаимосвязи между двумя категориями.
8. Для хордовой диаграммы нужны поля «от», «к» и значение.
9. При большом числе категорий диаграмма теряет читаемость.
10. Фильтрация по году и значению делает анализ нагляднее.
11. Толщина элементов может кодировать величину потока.
12. Рассмотренные визуализации применимы в разных предметных областях.

Вопросы для самопроверки

1. Для чего используется диаграмма Санкей?
2. Какие поля обязательны для диаграммы Санкей?
3. Как в Power BI связать таблицы источника и цели с таблицей весов?
4. Что означает Node ID?
5. Как добавить справочник отраслей без внешнего источника?
6. Как настроить подписи источника и назначения в диаграмме Санкей?
7. Зачем фильтровать диаграмму Санкей по весу?
8. Как интерпретировать путь Nuclear — Thermal generation — Grid — Industry/Losses?
9. Какие данные нужны для хордовой диаграммы?
10. Что показывает Outflow?
11. Почему при большом числе стран диаграмма нечитабельна и что делать?
12. Как изменить внешний вид хордовой диаграммы?
Вернуться к учебному плану