Версия: 1.6
Цвета темы и цветовые схемы
Deneb предоставляет два способа связать визуал с текущей темой отчёта:
- Доступ через выражения с использованием пользовательской функции.
- Пользовательские цветовые схемы Vega.
Оба способа обращаются к теме во время выполнения. Если вы измените цвета темы, Deneb автоматически обновит связанные с ними цвета визуала.
Доступ через выражения с pbiColor
В Deneb есть пользовательская функция pbiColor, которую можно использовать в выражениях Vega или Vega-Lite:
pbiColor(index|name, shadePercent = 0)
Первый параметр (
indexилиname) предоставляет доступ к соответствующему цвету темы:index— индекс цвета в палитре темы Power BI, отсчитываемый от нуля:0= цвет темы 1.1= цвет темы 2.2= цвет темы 3.- И так далее.
name— строка в одинарных кавычках, задающая именованный цвет из конфигурации темы. Допустимые имена:min/middle/max— цвета расходящейся шкалы.negative/neutral/positive— цвета для отрицательной, нейтральной и положительной оценки.- Power BI также предоставляет имена
badиgood: при желании их можно использовать вместоnegativeиpositive.

shadePercent— необязательное десятичное значение от-1(−100%) до1(100%).- Если оно задано, цвет затемняется при значении меньше нуля или осветляется при значении больше нуля на указанную величину.
- Это позволяет получить оттенки цветов темы, как в палитре выбора цвета Power BI.
Например, чтобы задать свойству color примитива bar первый цвет темы, используйте следующие свойства примитива:
{
...
"mark": {
...
"color": {
"expr": "pbiColor(0)"
}
}
}
Для стандартной темы результат будет выглядеть так для первых двух цветов (#118DFF и #12239E):

Цветовые схемы Power BI
Эти схемы можно использовать везде, где шкала Vega или Vega-Lite допускает указание цветовой схемы:
{
...
"encoding": {
"color": {
"field": "City",
"legend": null,
"scale": {"scheme": "pbiColorNominal"}
}
}
...
}
{
...
"scales": [
{
"name": "color",
"type": "ordinal",
"domain": {
"data": "dataset",
"field": "City",
"sort": true
},
"range": {
"scheme": "pbiColorOrdinal"
}
}
],
...
}
Доступные схемы описаны ниже.
pbiColorNominal
Схема pbiColorNominal предназначена для номинальных, то есть дискретных категорий, и соответствует цветам текущей темы Power BI:


pbiColorOrdinal
Схема pbiColorOrdinal предназначена для порядковых категорий. Она создаёт цветовую шкалу от минимального (Min) до максимального (Max) цвета расходящейся шкалы текущей темы Power BI, без среднего цвета (Middle):


pbiColorLinear
Схема pbiColorLinear создаёт интерполированный градиент от минимального (Min) до максимального (Max) цвета расходящейся шкалы текущей темы Power BI, без среднего цвета (Middle):

pbiColorDivergent
Схема pbiColorDivergent создаёт интерполированный градиент от минимального (Min) до максимального (Max) цвета расходящейся шкалы текущей темы Power BI, включая средний цвет (Middle):

Дискретные порядковые цвета
Как отмечалось выше, число цветов порядковой палитры ограничено: это заданные вручную значения, а не непрерывный градиент. Если подобрать их число неправильно, можно столкнуться с описанными ниже проблемами. После примеров рассмотрим, как их избежать.
Проблема № 1: мало дискретных цветов — повторение палитры
Если выделить палитре, например, 5 дискретных цветов, но значений окажется больше, цвета начнут повторяться:

Проблема № 2: мало дискретных значений — неразличимый градиент
Если попытаться избежать повторений и задать предполагаемое число цветов, например 50, результат при меньшем числе категорий тоже может оказаться неудовлетворительным:

Управление через свойства
Меню Report Theme Integration в панели форматирования Power BI позволяет задать число значений свойством Discrete Ordinal Colors:

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