单击点时Plotly Scatterplot超链接

时间:2016-02-04 10:25:00

标签: javascript django plot django-templates plotly

是否可以链接散点图的所有/部分点,这样每当您点击它们时,会打开一个新标签并触发该点上链接的超链接?

我在Django webserver实现中使用plotly,这意味着用javascript渲染plotly。

1 个答案:

答案 0 :(得分:4)

您可以使用click handler来实现此目的。但是,由于大多数浏览器始终试图阻止弹出窗口,因此可能很难在新选项卡中打开。



var trace1 = {
  x: [1, 2, 3],
  y: [1, 6, 3],
  mode: 'markers',
  type: 'scatter',
  text: ['Plotly', 'StackOverflow', 'Google'],
  hoverinfo: 'text',
  marker: { size: 12 }
};

var links = ['https://plot.ly/', 'http://stackoverflow.com/', 'https://google.com/'];

var data = [ trace1 ];

var layout = { 
  title:'Hyperlinked points'
};

var myPlot = document.getElementById('myDiv');
Plotly.newPlot(myPlot, data, layout);

myPlot.on('plotly_click', function(data){
  if (data.points.length === 1) {
    var link = links[data.points[0].pointNumber];
    
    // Note: window navigation here.
    window.location = link;
  }
});

<!-- Plotly.js -->
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>

<div id="myDiv" style="width: 480px; height: 300px;"></div>
&#13;
&#13;
&#13;