1) Какой смысл этого блока кодирования, который находится за пределами массива слоев. Каков эффект этого?
Кодировки над уровнем наследуются каждой подкартой в слое.
2) Зачем разделять кодировку следующим образом. Слой внутри внешнего слоя, почему?
Основная причина, по которой вы можете использовать такую многослойную структуру, состоит в том, чтобы избежать повторения спецификаций кодирования. Вы можете создать эквивалентный результат, переместив все кодировки в каждый слой и используя одну инструкцию уровня, например: ( представление в редакторе ):
{
"$schema": "https://vega.github.io/schema/vega-lite/v4.json",
"data": {"url": "data/stocks.csv"},
"width": 400,
"height": 300,
"layer": [
{
"mark": "line",
"encoding": {
"x": {"field": "date", "type": "temporal"},
"y": {"field": "price", "type": "quantitative"},
"color": {"field": "symbol", "type": "nominal"}
}
},
{
"transform": [{"filter": {"selection": "hover"}}],
"mark": "point",
"encoding": {
"x": {"field": "date", "type": "temporal"},
"y": {"field": "price", "type": "quantitative"},
"color": {"field": "symbol", "type": "nominal"}
}
},
{
"transform": [{"pivot": "symbol", "value": "price", "groupby": ["date"]}],
"mark": "rule",
"encoding": {
"x": {"field": "date", "type": "temporal"},
"opacity": {
"condition": {"value": 0.3, "selection": "hover"},
"value": 0
},
"tooltip": [
{"field": "AAPL", "type": "quantitative"},
{"field": "AMZN", "type": "quantitative"},
{"field": "GOOG", "type": "quantitative"},
{"field": "IBM", "type": "quantitative"},
{"field": "MSFT", "type": "quantitative"}
]
},
"selection": {
"hover": {
"type": "single",
"fields": ["date"],
"nearest": true,
"on": "mouseover",
"empty": "none",
"clear": "mouseout"
}
}
}
]
}
Это просто включает в себя много повторение эквивалентных кодировок.