Plotly.js Ось Click / Drag Событие - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть несколько осей Y в линейном графике. По умолчанию отображаются только последние линии сетки, связанные с осью Y. Если пользователь нажимает на любую другую ось Y, должны быть показаны линии сетки для этой оси Y. Но я не могу найти ни одного события в plotly.js, которое срабатывает при нажатии или перетаскивании оси.

1 Ответ

0 голосов
/ 13 ноября 2019

Извините, я пока не могу комментировать. Вот довольно хакерский способ регистрации кликов на ярлыках яксиса. Не уверен, что это полезно.

var trace1 = {
  x: [1, 2, 3],
  y: [40, 50, 60],
  name: 'yaxis data',
  type: 'scatter'
};

var trace2 = {
  x: [2, 3, 4],
  y: [4, 5, 6],
  name: 'yaxis2 data',
  yaxis: 'y2',
  type: 'scatter'
};

var data = [trace1, trace2];

var layout = {
  title: 'Double Y Axis Example',
  yaxis: {title: 'yaxis title'},
  yaxis2: {
    title: 'yaxis2 title',
    titlefont: {color: 'rgb(148, 103, 189)'},
    tickfont: {color: 'rgb(148, 103, 189)'},
    overlaying: 'y',
    side: 'right'
  }
};

Plotly.newPlot('chart', data, layout);

var myPlot = document.getElementById('chart');
myPlot.on('plotly_afterplot', function(){
    Plotly.d3.selectAll(".nsdrag.drag.cursor-ns-resize")
          .on("click", function() {
              var target = Plotly.d3.event.target;
              console.log('clicked on', target.dataset.subplot);
          });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/plotly.js/1.49.5/plotly.min.js"></script>
<div id="chart">
</div>
...