作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 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/
我在 dygraphs 上使用 zoomcallback,但我有一个问题,回调中传回的最小值和最大值实际上是插值。我需要将这些回调值映射到我对 x 进行哈希处理的原始数据集。 遍历我的原始数据集寻找最
我是一名优秀的程序员,十分优秀!