ChartJS 图表如何查找缩放图表的局部边界

hi3rlvi2  于 2022-11-06  发布在  Chart.js
关注(0)|答案(3)|浏览(197)

我一直在使用插件chartjs-plugin-zoom的chartjs,我找不到一种方法来获得x,y轴的本地最小值和最大值。虽然我在放大如何才能得到这些界限。x1c 0d1x
例如,我知道y的最大值和最小值,但我需要立即在屏幕上显示数据的y的最大值。
先谢谢你

ubbxdtey

ubbxdtey1#

您可以从缩放回调中作为参数获取的图表对象的刻度本身获取最小值和最大值,如下所示:
第一个

um6iljoc

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

ahy6op9u

ahy6op9u3#

显然,我们可以在屏幕上得到x值的最小值和最大值,但不能直接得到y值。我们应该迭代每个x值,以得到屏幕间隔之间y/最小值。因此,我的代码如下所示:

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);
}

因此,我可以得到图表区最左边和最右边像素之间y的最小值/最大值。

相关问题