const { data } = chart.data.datasets[0];
var xMin = 0;
var xMax = data.length;
// I set yMin as yMax to get yMin while iterating over x values
var yMin = chart.scales.y.max;
var yMax = 0;
xMin = chart.scales.x.min;
xMax = chart.scales.x.max;
for (let i = xMin; i < xMax; i++) {
let y = data[i];
yMin = Math.min(y, yMin);
yMax = Math.max(y, yMax);
}
3条答案
按热度按时间ubbxdtey1#
您可以从缩放回调中作为参数获取的图表对象的刻度本身获取最小值和最大值,如下所示:
第一个
um6iljoc2#
我不确定你在这里问的是什么。我想你是在问是否有一种方法可以在滚动时获得最小和最大缩放比例?如果你是在问这个问题,那么你可以在onZoom或onZoomComplete回调函数中使用
chart.getInitialScaleBounds()
。但是,如果您要求一种方法来获取缩放后当前视口的最大比例...我不认为这是可能的后,有一个很好的阅读文档和GitHub门票。https://www.chartjs.org/chartjs-plugin-zoom/latest/guide/developers.html#chart-getinitialscalebounds-record-string-min-number-max-number
https://github.com/chartjs/chartjs-plugin-zoom/discussions/586
ahy6op9u3#
显然,我们可以在屏幕上得到
x
值的最小值和最大值,但不能直接得到y
值。我们应该迭代每个x
值,以得到屏幕间隔之间y
/最小值。因此,我的代码如下所示:因此,我可以得到图表区最左边和最右边像素之间
y
的最小值/最大值。