有没有办法在绘图和 X 轴(vega-lite)之间添加换行符

Is there a way to add a line break between the plot and X axis (vega-lite)

我不确定它是否有意义,但是否可以在图的开头和 X 轴之间添加一个换行符。

例如

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "width": {"step": 10},
  "height": 120,
  "data": {"url": "data/cars.json"},
  "mark": "area",
  "encoding": {
    "x": {"field": "Name", "type": "nominal", "scale": {"round": false}},
    "y": {"aggregate": "count", "type": "quantitative"}
  }
}

希望输出:

一种方法是添加一个 scale.domain 参数:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "width": {"step": 10},
  "height": 120,
  "data": {"url": "data/cars.json"},
  "mark": "area",
  "encoding": {
    "x": {"field": "Name", "type": "nominal", "scale": {"round": false}},
    "y": {"aggregate": "count", "type": "quantitative", "scale": {"domain": [-0.5, 6]}}
  }
}

另一种方法是使用 yy2 编码为面积图设置底部值:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "width": {"step": 10},
  "height": 120,
  "data": {"url": "data/cars.json"},
  "mark": "area",
  "transform": [{"calculate": "0.1", "as": "bottom"}],
  "encoding": {
    "x": {"field": "Name", "type": "nominal", "scale": {"round": false}},
    "y": {"aggregate": "count", "type": "quantitative"},
    "y2": {"field": "bottom"}
  }
}

另一种做类似事情的方法,将其添加为另一个答案以方便其他人使用。

offset 属性 of axis 将轴线移动固定像素,与数据无关。不过,使用 offsetxy 轴线之间增加了一个间隙。

{
  "$schema": "https://vega.github.io/schema/vega-lite/v4.json",
  "width": {"step": 10},
  "height": 120,
  "data": {"url": "data/cars.json"},
  "mark": "area",
  "encoding": {
    "x": {"field": "Name", "type": "nominal", "scale": {"round": false}, "axis": {"offset": 5}},
    "y": {"aggregate": "count", "type": "quantitative"}
  }
}