Вопрос или проблема
Я пытаюсь создать аналогичный визуальный элемент, как в этой ссылке ниже в Deneb PowerBI: Sankey charts (alluvial charts) – By PBI – Davide. Я вижу, что данные вводятся вручную в виде JSON, например:
"data": [
{
"name": "input",
"values": [
{
"category": "Серверные продукты и облачные технологии",
"stack": 1,
"sort": 1,
"labels": "left"
},
{
"category": "Корпоративные услуги",
"stack": 1,
"sort": 2,
"labels": "left",
"gap": 20
},
{
"category": "Офисные продукты",
"stack": 1,
"sort": 3,
"labels": "left"
}
}
В PowerBI данные импортируются в виде
{
"data": [
{
"name": "dataset"
}
}
Есть ли способ как-то использовать значения из “dataset” полей PowerBI (воспользовавшись контекстом фильтра для получения конкретных значений) в полях “name”:”input”.
Например: я хочу добиться чего-то подобного
"data": [
{
"name": "dataset"
},
{
"name": "input",
"values": [
{
"category": "Серверные продукты и облачные технологии",
"stack": "datum['Measure1']", // Пользовательское значение из мер PowerBI
"sort": 1,
"labels": "left"
},
{
"category": "Корпоративные услуги",
"stack": "datum['Measure2']", // Пользовательское значение из мер PowerBI
"sort": 2,
"labels": "left",
"gap": 20
},
{
"category": "Офисные продукты",
"stack":"datum['Measure3']", // Пользовательское значение из мер PowerBI
"sort": 3,
"labels": "left"
}
}
Однако, это не позволяет мне сделать так. Я новичок в Vega и думаю, что есть другой способ ссылаться на эти значения.
В .pbix два отчета. Inline имеет встроенные данные, как вы говорите, но второй отчет под названием Data Driven уже делает то, что вы спрашиваете.
.
Ответ или решение
Для создания Sankey chart (или аллювиальной диаграммы) в Deneb на платформе Power BI с использованием данных из контекста фильтров, необходимо понимать, как правильно задать входные данные и связывать их с мерами Power BI. Ниже представлен подробный ответ на ваш запрос с объяснением необходимых шагов.
Шаг 1: Понимание структуры данных в Vega
Vega предоставляет возможность визуализации данных с использованием JSON-структуры. Каждый элемент визуализации может содержать набор данных, имя которого указывается в поле name
. В вашем примере, данные вводятся вручную в блоке "input"
для отображения различных категорий и связанных значений.
Шаг 2: Подготовка данных в Power BI
Во-первых, убедитесь, что ваши меры (например, Measure1
, Measure2
, Measure3
) правильно настроены в модели данных Power BI. Эти меры должны извлекать необходимые значения на основе контекста фильтров, применяемого в отчете.
Для доступа к этим мерам в Vega необходимо сначала импортировать данные в виде объекта:
"data": [
{
"name": "dataset"
}
]
Здесь вы создаете объект dataset
, который будет содержать все данные, доступные в вашем отчете.
Шаг 3: Создание блока input с параметрами из Power BI
Для того чтобы динамически извлекать значения из меры Power BI и использовать их в блоке "input"
для Sankey chart, стоит воспользоваться следующей структурой:
"data": [
{
"name": "dataset"
},
{
"name": "input",
"values": [
{
"category": "Server Products & Cloud",
"stack": {"signal": "datum['Measure1']"},
"sort": 1,
"labels": "left"
},
{
"category": "Enterprise Services",
"stack": {"signal": "datum['Measure2']"},
"sort": 2,
"labels": "left",
"gap": 20
},
{
"category": "Office Products",
"stack": {"signal": "datum['Measure3']"},
"sort": 3,
"labels": "left"
}
]
}
]
Обратите внимание на использование {"signal": "datum['Measure1']"}
— это позволяет ссылаться на значения, полученные из Power BI. Таким образом, вы сможете динамически обновлять визуализацию в зависимости от текущего контекста фильтров.
Шаг 4: Публикация и проверка
После того как вы внесли изменения в JSON-код, проверьте визуализацию в Power BI, убедившись, что все меры правильно воспринимаются и отображаются на диаграмме Sankey. Зафиксируйте данные, чтобы убедиться, что значения отрабатываются корректно во всех сценариях использования.
Заключение
Использование значений из Power BI в визуализациях Vega требует точной настройки JSON-структуры и правильного обращения к сигналам. Следуя вышеуказанным шагам, вы сможете динамически интегрировать данные в Sankey chart, что упростит отображение комплексных взаимосвязей между вашими категориями.
Если у вас возникнут дополнительные вопросы или потребуется помощь, пожалуйста, дайте знать!