我正在尝试使用 chartjs-plugin-zoom 查找缩放事件后当前可见的数据点。以下示例我想出了以下 onZoomComplete 回调,但它不起作用。
function getVisibleValues({chart}) {
const x = chart.scales.x;
let visible = chart.data.datasets[0].data.slice(x.minIndex, x.maxIndex + 1);
}
一个直接的问题是它chart.data
似乎不存在(使用console.log(chart.data)
它时返回未定义)。与 x.minIndex
和相同x.maxIndex
......任何关于我做错了什么的想法将不胜感激。
下面是我如何设置图表(数据是 x,y 对的数组):
ctx = new Chart(document.getElementById(ctx_id), {
type: "scatter",
data: {
datasets: [
{
label: "Data",
lineTension: 0,
showLine: true,
data: data,
},
],
},
options: {
animation: false,
plugins: {
zoom: {
zoom: {
mode: "x",
drag: {
enabled: true,
borderColor: "rgb(54, 162, 235)",
borderWidth: 1,
backgroundColor: "rgba(54, 162, 235, 0.3)",
},
onZoomComplete: getVisibleValues,
},
},
},
},
});