vega-lite 中的动态比例域
Dynamic scale domain in vega-lite
我想定义我的 x 轴:
最小值现在应该是()
应自动确定最大值(就像未定义比例域一样)
"encoding": {
"y": {
"field": "Reference",
"type": "nominal",
},
"x":{
"field": "Date",
"type": "temporal",
"scale": {"domain": [now(), 1618000000000]}}
我也试过用表达式设置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()"}]}}
这将创建一个包含当前日期的自动计算域。
我想定义我的 x 轴:
最小值现在应该是()
应自动确定最大值(就像未定义比例域一样)
"encoding": { "y": { "field": "Reference", "type": "nominal", }, "x":{ "field": "Date", "type": "temporal", "scale": {"domain": [now(), 1618000000000]}}
我也试过用表达式设置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()"}]}}
这将创建一个包含当前日期的自动计算域。