Javascript plotly.js:如何在单击事件时访问x、y以外的数据

Javascript plotly.js:如何在单击事件时访问x、y以外的数据,javascript,plotly,Javascript,Plotly,下面是中的代码 在这种情况下,是否有方法访问plotly\u单击事件中的text属性?基本上,我想用包含附加信息的url打开新选项卡(如textfield) 此外,我还想知道如何使用隐藏字段(而不是文本)生成数据,以便悬停时使用文本作为工具提示,使用其他字段作为单击事件。提前感谢。您可以通过d从功能(d)访问与单击事件相关的数据 单击点的索引可以通过d.points[0].pointNumber检索 d.points[0]。fullData和d.points[0]。数据以数组形式包含文本 d.p

下面是中的代码

在这种情况下,是否有方法访问
plotly\u单击
事件中的
text
属性?基本上,我想用包含附加信息的url打开新选项卡(如
text
field)


此外,我还想知道如何使用隐藏字段(而不是
文本
)生成数据,以便悬停时使用
文本
作为工具提示,使用其他字段作为单击事件。提前感谢。

您可以通过
d
功能(d)
访问与单击事件相关的数据

单击点的索引可以通过
d.points[0].pointNumber
检索

d.points[0]。fullData
d.points[0]。数据
以数组形式包含文本

d.points[0]。数据
包含其他属性(例如下面代码段中的
freetext

var myPlot=document.getElementById('myDiv');
var x=[0,1,2];
变量y=[0,1,0];
var text=['1','2','3'];
var freetext=[“一是一个孤独的数字”,“二比一好”,“三是一个幸运的数字”];
变量数据=[{x:x,
y:y,
文本:文本,
freetext:freetext,
键入:“散布”,
模式:'标记',
标记:{size:64}}];
Plotly.newPlot('myDiv',数据);
myPlot.on('plotly_click',函数(d){
window.alert('这是与您的点关联的文本:\n'+d.points[0].data.text[d.points[0].pointNumber]+'\n\n但您也可以获取任何其他信息:\n'+d.points[0].data.freetext[d.points[0].pointNumber]);
});


我也有兴趣这样做。@David:有关可能的解决方案,请参阅答案。
var myPlot = document.getElementById('myDiv'),
    d3 = Plotly.d3,
    N = 16,
    x = d3.range(N),
    y = d3.range(N).map( d3.random.normal() ),
    data = [ { x:x, y:y, type:'scatter',
            mode:'markers', marker:{size:16} } ],
    layout = {
        hovermode:'closest',
        title:'Click on Points'
     };

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

myPlot.on('plotly_click', function(data){
    var pts = '';
    for(var i=0; i < data.points.length; i++){
        pts = 'x = '+data.points[i].x +'\ny = '+
            data.points[i].y.toPrecision(4) + '\n\n';
    }
    alert('Closest point clicked:\n\n'+pts);
});
var N = 5,
    x = d3.range(N),
    y = d3.range(N).map( d3.random.normal() ),
    text = d3.range(N).map( function() {return "hello";} ),
    data = [ {x: x, y: y, text: text, type:"scatter", mode: "markers"} ];