Версия: 1.8

Подсказки

Из практического примера мы уже знаем, что добавить подсказки в спецификацию довольно просто. Здесь рассмотрим их подробнее.

Если вы ещё не читали обзор интерактивности, начните с него: он объясняет особенности взаимодействия с Power BI. Это особенно полезно для понимания подсказок на основе страницы отчёта.

Как работают подсказки

Vega и Vega-Lite позволяют настраивать обработку событий подсказок. Deneb содержит собственный обработчик для Power BI. Подсказка появляется, если выполнены следующие условия:

  1. В разделе Vega → Power BI Interactivity панели Settings редактора визуала включена настройка Tooltip Handler. По умолчанию она включена.
  2. Примитиву задано подходящее свойство tooltip. Рекомендуемый синтаксис для каждой библиотеки приведён ниже.
  3. Указатель наведён на примитив с включённой подсказкой.

Определение точки данных

Если объект datum примитива не был преобразован относительно "dataset" и представляет исходный контекст переданной строки, Deneb может сопоставить его с Power BI.

Если существует страница подсказки с хотя бы одним столбцом из текущего datum, Power BI покажет её в контексте этой строки:

Подсказка на основе страницы отчёта для примитива Deneb

Если подходящей страницы нет либо в меню Tooltip панели свойств Power BI выбрана стандартная подсказка, появится обычная подсказка:

Обычная подсказка Power BI

Если заголовок поля подсказки совпадает с именем столбца или меры из области Values, Deneb проверит, задана ли в модели данных строка форматирования, и автоматически применит её. Если определить формат не удалось, его можно задать вручную.

Если в отчёте включена поддержка современных подсказок и для точки данных существует подходящая страница drill-through, соответствующее действие будет доступно в подсказке:

Современная подсказка с переходом drill-through

Оформление обычных подсказок

Настраивайте его обычным способом — в меню Tooltip панели свойств Power BI.

Синтаксис Vega-Lite

Рекомендуется самый простой подход:

{
    ...
        "mark": {
            ...
            "tooltip": true,
            ...
        },
    ...
}

Синтаксис Vega

В Vega нужно задать сигнал tooltip в свойстве encode примитива:

{
    ...
    "encode": {
        "enter": {
            ...
            "tooltip": {
                "signal": "datum"
            },
            ...
        }
    },
    ...
}

Отладка с помощью подсказок

Если вместо подготовленных Vega данных, получаемых при tooltip: true, выводить исходный объект точки данных — например, способом Vega-Lite, — можно увидеть больше внутренних сведений:

Полный объект datum в подсказке с дополнительными полями

Это помогает определить дополнительные поля и вычисления, доступные для выражений. Также можно проверить, сохранил ли примитив контекст строки и можно ли сопоставить его с Power BI для интерактивных действий. Если datum подсказки содержит следующие свойства, связь точно сохранена:

  • __identity__
  • __key__
  • identityIndex
  • __selected__

Значение дополнительных полей объясняется в обзоре интерактивности.

Ограничения и особенности

  • Интеграция подсказок с Power BI полностью зависит от правильного контекста строки. Подробнее см. выше и в обзоре.
  • Добавление подсказки само по себе не создаёт визуальной реакции или эффектов. Если нужно явно обозначить положение точки данных, например на линейном графике, добавьте подходящие примитивы. Примеры есть в галереях Vega и Vega-Lite.
  • Разработка этой функциональности прежде всего ориентирована на интеграцию с Power BI. При отклонении от описанных способов подсказки могут отображаться неправильно. Если обнаружите такой случай, создайте обращение на GitHub с инструкцией по воспроизведению, спецификацией и/или данными, чтобы разработчики могли его изучить.