我正在试着画一张温度与时间的简单线图。
我试图使一个参数(例如滑块)的日期时间(以确定范围),但我不能得到一个参数与日期时间类型的工作。我将年、月和日作为单独的(整数)参数:
"params": [
{
"name": "lowYear",
"value": 2021,
"bind": {"input": "range", "min": 2020, "max": 2022, "step": 1}
},
{
"name": "lowMonth",
"value": 1,
"bind": {"input": "range", "min": 1, "max": 12, "step": 1}
},
{
"name": "lowDay",
"value": 1,
"bind": {"input": "range", "min": 1, "max": 31, "step": 1}
}
]
我可以很容易地对日期时间应用过滤器,但是当我对这些值使用表达式时,这就失败了。
"transform": [
{
"filter": {
"field": "timestamp",
"gte": {"year": 2021, "month": 2, "date": 20}
}
}
]
但是失败了:
"transform": [
{
"filter": {
"field": "timestamp",
"gte": {"year": {"expr": "lowYear"}, "month": 2, "date": 20}
}
}
]
过滤器似乎可以接受表达式,但在datetime
中嵌套时可能不接受。是这样吗?我如何参数化一个日期时间?
不确定你是否还在寻找这个问题的答案,但我有一个类似的问题,我现在已经解决了。
我的问题是用x轴的比例来表示整个12个月,即使没有数据存在,例如,12月,基于从范围控制中选择的年份。
scale: {"domain" :[{"expr":"datetime(AnnualPeriod,0,1)"},{"expr":"datetime(AnnualPeriod,11,31)"}]}
,"AnnualPeriod"数据字段是否绑定到范围控件
"params": [{"name" : "AnnualPeriod", "value": 2019,"bind" : {"input": "range", "min":1995, "max":2020,"step":1}}],
,使用以下过滤器按年过滤数据:
transform:[{"filter":"year(datum.date_of_transfer)===AnnualPeriod"}],
我认为对你有帮助的是:
{"expr":"datetime(AnnualPeriod,0,1)"}
,AnnualPeriod等价于lowYear月份01月为和1第一个.
所以你的应该是:
"gte": {"expr":"datetime(lowYear,1,20)"}
注意以零为基数的数组。1 =二月