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,它使用了这个。
我正在使用 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,它使用了这个。