如何在Google图表散点图上为每组数据点添加不同的网页链接?

时间:2012-02-23 10:26:50

标签: google-visualization

是否可以将超链接添加到散点图中,所以当我点击数据点时会打开链接?

感谢

1 个答案:

答案 0 :(得分:0)

我创建了一个jsfiddle demo来表明可以这样做,但我找不到按照我希望的方式做到这一点的方法。

创建数据集后,我创建了一个数组,该数组的URL列表与显示的结果的顺序相同。当通过单击某个点触发选择事件时,将执行一个函数,在这种情况下会将您带到正确的URL。

数据:

var data = google.visualization.arrayToDataTable([
    ['Age', 'Weight'],
    [ 8, 12 ],
    [ 4, 5.5 ],
    [ 11, 14 ],
    [ 4, 5 ],
    [ 3, 3.5 ],
    [ 6.5, 7 ]
]);

网址:

var dataUrls = new Array();                
for(var i = 0; i < data.D.length; i++) {
    dataUrls[i] = 'http://www.'+i+'.com';
}

(在此示例中,我为每个结果创建了一个不同的网址http://www.n.com,其中 n 是索引)

一旦宣布了图表,就可以添加一个事件监听器,该监听器会在点击一个点时触发。

google.visualization.events.addListener(chart, 'select', function() {
    try {
        window.location = dataUrls[chart.getSelection()[0].row];
    } catch(e) {}
});

这里重要的一点是chart.getSelection()[0].row,这会告诉你这是什么结果,并获得可用于从数组中检索正确URL的“索引”。

如果您在同一窗口中打开页面以外的任何其他内容,则会出现一些错误。基本上,点击同一事件两次会抛出TypeError,这就是我在try catch语句中包装调用的原因。

正如我所说,可能还有另一种做法,但希望这是一个很好的起点。