Версия: 1.7

Цвета темы и цветовые схемы

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.

      Допустимые имена цветов для функции pbiColor

  • shadePercent — необязательное десятичное значение от -1 (−100%) до 1 (100%).

    • Если оно задано, цвет затемняется при значении меньше нуля или осветляется при значении больше нуля на указанную величину.
    • Это позволяет получить оттенки цветов темы, как в палитре выбора цвета Power BI.

Например, чтобы задать свойству color примитива bar первый цвет темы, используйте следующие свойства примитива:

{
  ...
  "mark": {
    ...
    "color": {
      "expr": "pbiColor(0)"
    }
  }
}

Для стандартной темы результат будет выглядеть так для первых двух цветов (#118DFF и #12239E):

Пример использования первых двух цветов темы

Цветовые схемы Power BI

Эти схемы можно использовать везде, где шкала Vega или Vega-Lite допускает указание цветовой схемы:

Vega-Lite
{
  ...
  "encoding": {
    "color": {
      "field": "City",
      "legend": null,
      "scale": {"scheme": "pbiColorNominal"}
    }
  }
  ...
}
Vega
{
  ...
  "scales": [
    {
      "name": "color",
      "type": "ordinal",
      "domain": {
        "data": "dataset",
        "field": "City",
        "sort": true
      },
      "range": {
        "scheme": "pbiColorOrdinal"
      }
    }
  ],
  ...
}

Доступные схемы описаны ниже.

pbiColorNominal

Схема pbiColorNominal предназначена для номинальных, то есть дискретных категорий, и соответствует цветам текущей темы Power BI:

Стандартные цвета темы в диалоге настройки темы Power BI

Пример применения схемы pbiColorNominal

pbiColorOrdinal

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

Цвета расходящейся шкалы в настройках темы Power BI

Пример применения схемы pbiColorOrdinal

pbiColorLinear

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

Пример применения схемы pbiColorLinear

pbiColorDivergent

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

Пример применения схемы pbiColorDivergent

Дискретные порядковые цвета

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

Проблема № 1: мало дискретных цветов — повторение палитры

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

Повторение цветов после последнего цвета порядковой палитры

Проблема № 2: мало дискретных значений — неразличимый градиент

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

Слишком близкие цвета при небольшом числе категорий

Управление через свойства

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

Настройка числа дискретных порядковых цветов

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

Условное форматирование числа дискретных порядковых цветов