使用Vega-Lite在指定日期范围内用0填充缺失数据

问题描述 投票:0回答:1

我必须渲染一个使用 API 中的数据的折线图,并且它仅返回确实有一些数据的日期的值。对于没有数据的日子,它不会像预期那样返回 0 的条目。

这意味着图表不代表 0 的值,这是一个问题。

我无法修改此 API,所以我的问题是是否有一种方法可以告诉 vega-lite 在日期范围内渲染数据,并且如果某天没有数据,则将其显示为 0。

我想我可以在将数据发送到我的react-vega组件之前对其进行转换,但如果这可以由vega-lite完成,那就更好了。

json charts visualization vega-lite
1个回答
2
投票

您可以使用估算(尽管您必须在估算中提供转换为数字的日期 - 我在这里提出了一个错误

下面的规格将 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"} } }
    
© www.soinside.com 2019 - 2024. All rights reserved.