You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vega-Lite如何将值为0的水平线锚定在图表底部而非中间?

解决Vega-Lite全0数据线条居中问题

当所有数据点的value均为0时,Vega-Lite会自动计算y轴范围,导致线条居中显示。要将线条锚定在图表底部,只需强制设置y轴的起始值为0即可,有两种常用方式:

方法一:固定y轴最小刻度

在y轴的编码配置中添加scale.domainMin: 0,强制y轴从0开始,同时保留后续数据变化时y轴自动扩展的能力:

{
  "$schema": "https://vega.github.io/schema/vega-lite/v5.json",
  "data": {
    "values": [
      { "date": "2022-07-27 4:20", "value": 0 },
      { "date": "2022-07-27 4:21", "value": 0 },
      { "date": "2022-07-27 4:22", "value": 0 },
      { "date": "2022-07-27 4:23", "value": 0 },
      { "date": "2022-07-27 4:24", "value": 0 },
      { "date": "2022-07-27 4:25", "value": 0 },
      { "date": "2022-07-27 4:26", "value": 0 },
      { "date": "2022-07-27 4:27", "value": 0 },
      { "date": "2022-07-27 4:28", "value": 0 },
      { "date": "2022-07-27 4:29", "value": 0 },
      { "date": "2022-07-27 4:30", "value": 0 },
      { "date": "2022-07-27 4:31", "value": 0 },
      { "date": "2022-07-27 4:32", "value": 0 },
      { "date": "2022-07-27 4:33", "value": 0 },
      { "date": "2022-07-27 4:34", "value": 0 },
      { "date": "2022-07-27 4:35", "value": 0 },
      { "date": "2022-07-27 4:36", "value": 0 },
      { "date": "2022-07-27 4:37", "value": 0 },
      { "date": "2022-07-27 4:38", "value": 0 },
      { "date": "2022-07-27 4:39", "value": 0 }
    ]
  },
  "encoding": {
    "x": {
      "field": "date",
      "type": "temporal"
    },
    "y": {
      "field": "value",
      "type": "quantitative",
      "scale": {
        "domainMin": 0
      }
    }
  },
  "mark": {
    "type": "line"
  }
}

方法二:直接指定y轴范围

如果希望y轴仅显示0刻度,可直接设置scale.domain: [0, 0],完全固定y轴范围:

"y": {
  "field": "value",
  "type": "quantitative",
  "scale": {
    "domain": [0, 0]
  }
}

两种方式都能让全0数据的线条对齐到图表底部,可根据后续数据需求选择对应方案。

内容的提问来源于stack exchange,提问作者woolyninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 08:33:26