Наложение слоёв
Оператор 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"}}: