dygraphs 2.0のgetRowForX
メソッドは、あなたが望むものと似ていますが、正確にx値に一致する場合にのみインデックスを返します。バイナリ検索を使用して実装されています。不正確な試合のために最も近い行番号を取得するには、わずかな微調整が必要です。では
function getCloseRowForX(g, xVal) {
var low = 0,
high = g.numRows() - 1;
while (low <= high) {
var idx = (high + low) >> 1;
var x = g.getValue(idx, 0);
if (x < xVal) {
low = idx + 1;
} else if (x > xVal) {
high = idx - 1;
} else {
return idx;
}
}
return idx;
};
をごzoomCallback
あなたはこのような何か行うことができます。
zoomCallback() {
const [leftX, rightX] = this.xAxisRange();
const leftIndex = getCloseRowForX(this, leftX);
const rightIndex = getCloseRowForX(this, rightX);
const leftValue = this.getValue(leftIndex, seriesNum);
const rightValue = this.getValue(rightIndex, seriesNum);
}
を