首页 > 解决方案 > vega-lite 中的动态尺度域

问题描述

我想定义我的 x 轴:

我还尝试使用表达式来设置 now(),但没有成功:

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

标签: vega-lite

解决方案


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

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

这是一个完整的例子(在编辑器中打开):

{
  "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()"}]}}

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


推荐阅读