我必须渲染一个使用 API 中的数据的折线图,并且它仅返回确实有一些数据的日期的值。对于没有数据的日子,它不会像预期那样返回 0 的条目。
这意味着图表不代表 0 的值,这是一个问题。
我无法修改此 API,所以我的问题是是否有一种方法可以告诉 vega-lite 在日期范围内渲染数据,并且如果某天没有数据,则将其显示为 0。
我想我可以在将数据发送到我的react-vega组件之前对其进行转换,但如果这可以由vega-lite完成,那就更好了。
您可以使用估算(尽管您必须在估算中提供转换为数字的日期 - 我在这里提出了一个错误)
下面的规格将 2012 年 1 月 5 日的值推算为零:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "Using utc scale with local time input.",
"data": {
"values": [
{"date": "2012-01-01", "price": 150},
{"date": "2012-01-02", "price": 100},
{"date": "2012-01-03", "price": 170},
{"date": "2012-01-04", "price": 165},
{"date": "2012-01-06", "price": 200}
]
},
"transform": [
{
"impute": "price",
"key": "date",
"value": 0,
"keyvals": [
1325376000000,
1325462400000,
1325548800000,
1325635200000,
1325721600000,
1325721600000
]
},
{"timeUnit": "day", "field": "date", "as": "dateTU"}
],
"mark": "line",
"encoding": {
"x": {"field": "date", "timeUnit": "date"},
"y": {"field": "price", "type": "quantitative"}
}
}