1

折线图上 “如果某些 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 论坛

4

0 回答 0