Chart.js: 从 chart.getPointsAtEvent(e) 获取点索引

Chart.js: Get point index from chart.getPointsAtEvent(e)

我希望让我的图表(用 Chart.js 制作)更具交互性,我想使用以下代码获取一个点的索引(其数据集):

canvas.onclick = function(e) {
  const points = chart.getPointsAtEvent(e);
  // something like `point.getIndex()` would be great so that I know where this point is in the original dataset
};

有人对此有好的解决方案吗?

您应该能够执行 indexOf(而不是标签查找),因为它指的是点集合中完全相同的对象

canvas.onclick = function (evt) {
    var points = chart.getPointsAtEvent(evt);
    alert(chart.datasets[0].points.indexOf(points[0]));
};

此外,对于多系列折线图,来自所有数据集的 getPointsAtEvent(evt) returns 个点。因此,无论您拥有多少数据集或单击哪个数据集,相同的代码都可以工作。

Fiddle - http://jsfiddle.net/yxz2sjam/