dygraphs 中单点的误差线?

Error bars on single points in dygraphs?

我正在使用 dygraphs 来显示有错误的数据。对于理论数据,这完全没问题,因为它还使线周围出现 "error band" - 很棒。然而,实验数据通常基于离散测量,添加这种数据我希望能够只显示测量点及其各自的误差——而不是将误差带绘制到最近的可用点。

我可以在数据点的每一侧添加一个 NaN 点以使误差带不可见,但是 - 顾名思义 - 它实际上是不可见的,所以即使将鼠标悬停在该点上我也可以'看到错误。

有什么方法可以实现单个数据点的误差线吗?尤其是与启用误差带的系列混合使用时?

这里是 jsFiddle 案例展示。线 A 应该是一条带有误差带的正常线,线 B 只包含每点误差的点。

非常感谢!

您可以使用 custom plotter:

function singleErrorPlotter(e) {
  var ctx = e.drawingContext;
  var points = e.points;
  var g = e.dygraph;
  var color = e.color;
  ctx.save();
  ctx.strokeStyle = e.color;

  for (var i = 0; i < points.length; i++) {
    var p = points[i];
    var center_x = p.canvasx;
    if (isNaN(p.y_bottom)) continue;

    var low_y = g.toDomYCoord(p.yval_minus),
        high_y = g.toDomYCoord(p.yval_plus);

    ctx.beginPath();
    ctx.moveTo(center_x, low_y);
    ctx.lineTo(center_x, high_y);
    ctx.stroke();
  }

  ctx.restore();
}

这是您 fiddle 的 updated version,它使用了这个。