拖动事件 AMCHARTS 4 + Vue 上的相对轴值是无穷大
Relative axis values are infinity on drag event AMCHARTS 4 + Vue
我在 vue js 应用程序中使用 amcharts 4。尝试使用可拖动的圆形项目符号构建 XYChart。我在拖动或缩放选项之间切换,它是一个或另一个,所以我将可拖动状态设置为项目符号实例,只要它悬停在和悬停时(idk,如果这是一个好方法)
this.bullet.events.on("over", e => {
e.target.interactions.draggable = this.darggableState;
});
this.bullet.events.on("drag", e => {
console.log(e.target.dataItem.valueY) // representation value of Y axis
console.log(e.target.relativeY) // infinity . As far as I understood this value
should represent relative Y axis value accordingly current bullet position on yAxis.
Meawhile I'm still able to get a pixel representation of position.
});
我正在考虑是否应该在除 bullet 之外的其他实例上使用事件。我的主要目标是检索图表上拖动项目符号的相对值,以便我可以用它更新我的数据。感谢任何帮助或建议!
经过数小时的努力寻找最佳方法后,意识到游标对象是根据当前位置获取轴值参考的最佳方法。
this.chart.cursor.events.on("cursorpositionchanged", function(ev) {
var yAxis = ev.target.chart.yAxes.getIndex(0);
console.log("y: ", yAxis.positionToValue(yAxis.toAxisPosition(ev.target.yPosition)));
});
https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/
或拖动事件你仍然可以访问
const yAxis = this.chart.yAxes.getIndex(0);
const axisValue = yAxis.positionToValue(yAxis.toAxisPosition(this.chart.cursor.yPosition)
我在 vue js 应用程序中使用 amcharts 4。尝试使用可拖动的圆形项目符号构建 XYChart。我在拖动或缩放选项之间切换,它是一个或另一个,所以我将可拖动状态设置为项目符号实例,只要它悬停在和悬停时(idk,如果这是一个好方法)
this.bullet.events.on("over", e => {
e.target.interactions.draggable = this.darggableState;
});
this.bullet.events.on("drag", e => {
console.log(e.target.dataItem.valueY) // representation value of Y axis
console.log(e.target.relativeY) // infinity . As far as I understood this value
should represent relative Y axis value accordingly current bullet position on yAxis.
Meawhile I'm still able to get a pixel representation of position.
});
我正在考虑是否应该在除 bullet 之外的其他实例上使用事件。我的主要目标是检索图表上拖动项目符号的相对值,以便我可以用它更新我的数据。感谢任何帮助或建议!
经过数小时的努力寻找最佳方法后,意识到游标对象是根据当前位置获取轴值参考的最佳方法。
this.chart.cursor.events.on("cursorpositionchanged", function(ev) {
var yAxis = ev.target.chart.yAxes.getIndex(0);
console.log("y: ", yAxis.positionToValue(yAxis.toAxisPosition(ev.target.yPosition)));
});
https://www.amcharts.com/docs/v4/tutorials/tracking-cursors-position-via-api/
或拖动事件你仍然可以访问
const yAxis = this.chart.yAxes.getIndex(0);
const axisValue = yAxis.positionToValue(yAxis.toAxisPosition(this.chart.cursor.yPosition)