在折线图上 “如果某些 x 或 y 通道值未定义(或 null 或 NaN),则相邻点之间将出现间隙”。
如果我的数据集包含这些未定义的值,我如何才能在使用group
/ groupX
/时实现这些值groupY
?
下图是使用一个数据集创建的(为简洁起见删除了一些设置),其中设置了所有 x 值 ( timestamp
) 并且一些 y 值 ( temp
) 是undefined
。
marks: [
Plot.frame(),
Plot.line(data, { x: "timestamp", y: "temp", stroke: "sensor_id" }),
Plot.line(data, Plot.groupX({ y: "mean" }, { x: d => new Date(d.timestamp.getTime()).setSeconds(0, 0), y: "temp", stroke: "black" }))
]
我怎样才能做到这一点undefined
?是否有设置group
单个值/所有值时的行为方式undefined
?
我设法通过提供一个处理值的自定义聚合函数来使其工作undefined
,但我认为应该有一种更简单的方法来实现这一点。好像我错过了什么。
Plot.line(data,
Plot.groupX(
// Here I check if the grouping consists of a single falsy value
{ y: data => (data.length == 1 && !data[0]) ? undefined : data.reduce((a,b) => a + b, 0) / data.length },
{ x: d => new Date(d.timestamp.getTime()).setSeconds(0, 0), y: "temp", stroke: "black"
))
交叉发布到ObservableHQ 论坛