为什么 Vega Lite 中的列面不能与层一起正常工作?

Why column facet in Vega Lite not working properly with layer?

我正在尝试创建 3 列图,它在没有图层时有效。

但是当我添加图层时 - 3 列合并到一个图中 (open in editor)。

如何让duration字段分成3列?

代码

对于包含完整数据的绘图,请使用上面的编辑器 link。

{
  "encoding": {
    "column": { "field": "duration", "type": "nominal" },

    "x": { "field": "bin_i", "type": "ordinal" }
  },
  "layer": [
    {
      "mark": { "type": "bar", "size": 2 },
      "encoding": {
        "y": { "field": "min", "type": "quantitative" },
        "y2": { "field": "max", "type": "quantitative" }
      }
    },
    {
      "mark": { "type": "tick" },
      "encoding": {
        "y": { "field": "mean", "type": "quantitative" }
      }
    }
  ],
  "data": {
    "values": [
      {
        "bin_i": 1,
        "duration": 1,
        "max": 1.9642835793718165,
        "mean": 1.0781367168962268,
        "min": 0.3111818864927448
      },
      ...
    ]
  }
}

分层图表不接受分面编码。如果你想对分层图表进行分面,你应该使用 facet operator 而不是分面编码。

对于您的示例,它看起来像这样 (Vega Editor):

{
  "facet": {"column": {"field": "duration", "type": "nominal"}},
  "spec": {
    "encoding": {
      "x": {"field": "bin_i", "type": "ordinal"}
    },
    "layer": [
      {
        "mark": {"type": "bar", "size": 2},
        "encoding": {

          "y": {"field": "min", "type": "quantitative"},
          "y2": {"field": "max"}
        }
      },
      {
        "mark": {"type": "tick"},
        "encoding": {
          "y": {"field": "mean", "type": "quantitative"}
        }
      }
    ]
  },
  "data": {
    "values": [
      {
        "bin_i": 1,
        "duration": 1,
        "max": 1.9642835793718165,
        "mean": 1.0781367168962268,
        "min": 0.3111818864927448
      },
      ...
    ]
  }
}