vega-lite - vega-lite 中的动态尺度域
问题描述
我想定义我的 x 轴:
最小值应该是 now()
最大值应该是自动确定的(就像没有定义刻度的域一样)
"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"]}
这是一个完整的例子(在编辑器中打开):
{
"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()"}]}}
这将创建一个包含当前日期的自动计算域。
推荐阅读
- python - SQLAlchemy 查询的最小值/最大值有限制
- php - PHP代码注入不起作用
- qt - 无法在 Raspberry Pi 3 B+ 上交叉编译 Qt5.11.1
- java - 如何使用 Jackson 对 Feign HTTP GET 请求参数进行编码?
- python - 正则表达式_如何从一行中提取多个匹配模式?
- swift - 在 Swift 中删除一个类的实例
- reactjs - 使用 Typescript 学习 React
- android - 如何在过渡期间设置背景?
- ruby-on-rails - 如何限制用户在特定资源上创建多个对象
- javascript - JavaScript 回调节点功能