Относительные значения оси - бесконечность на событии перетаскивания AMCHARTS 4 + Vue - PullRequest
0 голосов
/ 30 сентября 2019

Я использую amcharts 4 в приложении Vue JS. Попытка построить 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.
    });

Я считаю, что мне следует использовать событие в другом инстансе, кроме пули. Моя главная цель - получить относительную ценность перетаскиваемой пули на графике, чтобы я мог обновить свои данные с ее помощью. Любая помощь или советы приветствуются!

1 Ответ

0 голосов
/ 30 сентября 2019

После нескольких часов попыток найти лучший подход, понял, что объект курсора - лучший способ получить ссылку на значение оси в соответствии с текущей позицией.

 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)
...