Наложение слоёв

Оператор layer накладывает одну диаграмму на другую. Чтобы создать такую составную диаграмму, поместите спецификации слоёв в массив:

{
  "layer": [
    ... // Спецификации отдельных представлений или слоёв
  ]
}

Помимо общих свойств спецификации, для слоёв доступны:

Свойство Тип Описание
layer (LayerSpec, UnitSpec)[] Спецификации слоёв или отдельных представлений для наложения.

Примечание: спецификации внутри layer не могут использовать каналы row и column, поскольку наложение панельных спецификаций не допускается. Используйте оператор facet, размещая слой внутри панели.
width number, "container" или Step Ширина визуализации. Для непрерывного поля x задаётся числом. Для дискретного поля x или при его отсутствии можно задать фиксированную ширину числом либо ширину шага объектом {step: number}. Отсутствие поля x соответствует одному дискретному шагу. Значение "container" включает адаптивную ширину. По умолчанию: config.view.continuousWidth для непрерывного поля x, иначе config.view.discreteWidth. При использовании каналов row и column это ширина одного представления; "container" недопустимо.
height number, "container" или Step Высота визуализации. Для непрерывного поля y задаётся числом. Для дискретного поля y или при его отсутствии можно задать фиксированную высоту числом либо высоту шага объектом {step: number}. Отсутствие поля y соответствует одному дискретному шагу. Значение "container" включает адаптивную высоту. По умолчанию: config.view.continuousHeight для непрерывного поля y, иначе config.view.discreteHeight. При использовании каналов row и column это высота одного представления; "container" недопустимо.
view ViewBackground Объект, определяющий заливку и обводку фона представления.

По умолчанию: не задан (прозрачный фон).
encoding SharedEncoding Общий объект соответствий между каналами кодирования и определениями полей вложенных слоёв.
projection Projection Объект свойств географической проекции, общей для вложенных слоёв.
resolve Resolve Правила совместного использования шкал, осей и легенд в спецификациях составных представлений.

В массив layer можно включать только отдельные представления и другие слои. Представления, уже разбитые на панели или размещённые рядом, имеют несовместимую для прямого наложения компоновку. Если нужны слои внутри панелей, сначала задайте facet, а в его spec поместите layer.

Пример

Сначала построим отдельные части. Первая диаграмма показывает цену акций разных компаний со временем:

Вторая диаграмма показывает среднюю цену каждой акции примитивом rule. Это особый примитив, который может занимать всю ширину или высоту отдельного представления:

Теперь обе спецификации помещены в один массив layer. Общий источник data можно оставить на верхнем уровне, поскольку он нужен обоим слоям:

Другие примеры наложения приведены в галерее.

Общие шкалы, оси и легенды

По умолчанию Vega-Lite объединяет области значений шкал слоёв. В примере выше оба слоя используют общую ось Y и легенду цвета. Поведение можно изменить через resolve.

По умолчанию правила объединения для слоёв задают общие шкалы, оси и легенды.

Здесь шкалы Y двух слоёв сделаны независимыми с помощью "resolve": {"scale": {"y": "independent"}}: