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

标签 javascript html canvas charts chart.js

我希望使我的图表(使用 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) 返回所有数据集中的点。因此,无论您拥有多少数据集或单击哪个数据集,相同的代码都可以工作。

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

关于javascript - Chart.js:从chart.getPointsAtEvent(e)获取点索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253468/

相关文章:

javascript - 悬停 I 标签更改其内部和之前的字体图标

javascript - 为什么我的数组项被添加到顶部,而滚动条仍保留在顶部?

php - 从数据库中选择 MySQL 在输入文本 html 中显示值 从另一个输入文本 html 中按值选择

javascript - 如果窗口不够大,则缩放(缩小)内容

javascript - 特定方向上经过 3 点的圆弧

python | tkinter 和线程 : "main thread is not in main loop"

javascript - Meteor 方法回调结果未定义

html - <a></a> 标签的文本不会显示在已定义背景图像的 Internet Explorer (7-8) 中

javascript - 我无法将外部图像加载到 Canvas 上

javascript - 在 IIFE 中两次声明一个变量