你能在单个 Vegalite 情节中有小平面和层次吗?

Can you have facets & layers in single Vegalite plot?

我很难理解为什么层规范如下所示:

"layer": [
    {"encoding": {
        "facet": {"field": "FEATURE_VALUE"},
        "x": {
            "field": "DATE",
            "type": "temporal"
        },
        "y": {
            "field": "VALUE",
            "type": "quantitative"
        }
    },
    "mark": {
        "type": "line"
    }}
    ]

引发错误,结果为:Cannot read property 'push' of undefined

同时,单位规格:

"encoding": {
        "facet": {"field": "FEATURE_VALUE"},
        "x": {
            "field": "DATE",
            "type": "temporal"
        },
        "y": {
            "field": "VALUE",
            "type": "quantitative"
        }
    },
    "mark": {
        "type": "line"
    }
}

工作正常。

我可以看出这与以下内容有关:

但是,似乎无法完全回答主要问题:我可以使用 facet 绘制网格图并在其上添加图层(例如工具提示、标尺等)

谢谢!

Vega-Lite 提供了两种指定分面的方法:作为编码(参见 Facet, Row, and Column Encoding Channels) and as an operator (See Facet Operator)。

层图不允许包含面编码,但是面运算符可以包含层图(原因是包含不兼容面的层语义不明确)。

所以,而不是像这样:

"layer": [
    {"encoding": {
        "facet": {"field": "FEATURE_VALUE"},
        "x": {
            "field": "DATE",
            "type": "temporal"
        },
        "y": {
            "field": "VALUE",
            "type": "quantitative"
        }
    },
    "mark": {
        "type": "line"
    }}
]

你可以这样做:

"facet": {"field": "FEATURE_VALUE"},
"spec": {
  "layer": [
    {"encoding": {
        "x": {
            "field": "DATE",
            "type": "temporal"
        },
        "y": {
            "field": "VALUE",
            "type": "quantitative"
        }
    },
    "mark": {
        "type": "line"
    }}
  ]
}