reactjs - 在图表上单击鼠标获取(X,Y)点
问题描述
我正在使用 react Chartjs 的散点图为一组 X、Y 点绘制折线图。当用户右键单击图表上的任意位置时,我试图通过将以下函数传递给onClick来获取 X 和 Y 点。
options={
...
onClick: function(event) {
let activeElement = Ref.current.chartInstance.getElementAtEvent(
event
);
let res =
Ref.current.chartInstance.data.datasets[
activeElement[0]._datasetIndex
].data[activeElement[0]._index];
}
}
但这仅在我单击现有点上的绘制线时有效,而不是在我单击图表中的任何位置时有效。如果我单击该行以外的任何其他位置,则返回的 activeElement 将是空列表。
无论我在图表区域的哪个位置单击,我如何才能获得 X 和 Y?
解决方案
onClick: (e) => {
const canvasPosition = Chart.helpers.getRelativePosition(e, chart);
// replace .x. and .y. with the id of your axes below
const dataX = chart.scales.x.getValueForPixel(canvasPosition.x);
const dataY = chart.scales.y.getValueForPixel(canvasPosition.y);
},
推荐阅读
- android - Android Proguard Kotlinx Coroutines 警告
- php - Laravel array_diff 属性
- node.js - Node.js 转换 HEIC 文件
- c - 与结构数组不兼容的指针类型
- javascript - 在本地和沙盒外部署 Vue 应用程序
- android - 向上滚动时如何跳过回收视图中的最后一项
- wordpress - 查询在 Wordpress 中获取带有自定义字段数据的帖子
- javascript - HTTP/HTTPS Nodejs 使用 HTML 服务 Javascript
- python - 如何在文本文件中搜索某些内容并在 python 中输出它的详细信息?
- unity3d - 从子级获取?-type Collider,并将重复组件添加到父级