gpt4 book ai didi

javascript - 在 zoomcallback 上获取最近的最小 x 和最大 x 数据点?

转载 作者:行者123 更新时间:2023-11-29 15:23:19 27 4
gpt4 key购买 nike

我在 dygraphs 上使用 zoomcallback,但我有一个问题,回调中传回的最小值和最大值实际上是插值。我需要将这些回调值映射到我对 x 进行哈希处理的原始数据集。

遍历我的原始数据集寻找最接近的 x 最小值和最接近的 y 值是不可行的。

有人知道获取图表最小 x 和最大 x 可见部分的实际数据值的方法吗?

最佳答案

getRowForX dygraphs 2.0 中的方法做的事情与您想要的类似,但如果您完全匹配 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);
}

关于javascript - 在 zoomcallback 上获取最近的最小 x 和最大 x 数据点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41525964/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com