vega-lite 中的动态比例域

Dynamic scale domain in vega-lite

我想定义我的 x 轴:

我也试过用表达式设置now(),没成功:

"scale": {"domain": ["expr":"now()", 1618000000000]

您第二次尝试时非常接近;您只需要在表达式语句两边加上大括号:

"scale": {"domain": [{"expr": "now()"}, "2021-05-01T00:00:00"]}

这是一个完整的示例 (open in editor):

{
  "data": {
    "values": [
      {"date": "2021-03-01T00:00:00", "value": 1},
      {"date": "2021-04-01T00:00:00", "value": 3},
      {"date": "2021-05-01T00:00:00", "value": 2}
    ]
  },
  "mark": "line",
  "encoding": {
    "x": {
      "field": "date",
      "type": "temporal",
      "scale": {"domain": [{"expr": "now()"}, "2021-05-01T00:00:00"]}
    },
    "y": {"field": "value", "type": "quantitative"}
  }
}

如果您不想设置域限制,而只想确保 now() 作为域的一部分出现,您可以使用域 unionWith 语句:

"scale": {"domain": {"unionWith": [{"expr": "now()"}]}}

这将创建一个包含当前日期的自动计算域。