Google visualization 在谷歌可视化折线图中创建可点击元素
是否可以将onclick方法附加到Google可视化折线图中的元素?例如,如果用户单击图表中的某个点,我希望将用户发送到包含更多详细信息的页面。我已经阅读了所有的文档,但找不到一个例子来说明如何做到这一点 我看到有一些事件的方法(从中),但是没有明确的例子,这没有多大意义Google visualization 在谷歌可视化折线图中创建可点击元素,google-visualization,Google Visualization,是否可以将onclick方法附加到Google可视化折线图中的元素?例如,如果用户单击图表中的某个点,我希望将用户发送到包含更多详细信息的页面。我已经阅读了所有的文档,但找不到一个例子来说明如何做到这一点 我看到有一些事件的方法(从中),但是没有明确的例子,这没有多大意义 谢谢 您可以使用“选择”事件来执行此操作,用户每次单击折线图上的某个点时都会触发该事件。我在下面提供了一个工作示例,包括带有几个值的重定向。GoogleCode游乐场有一个相同的功能,可以在大多数可视化中使用相同类型的功能 &
谢谢 您可以使用“选择”事件来执行此操作,用户每次单击折线图上的某个点时都会触发该事件。我在下面提供了一个工作示例,包括带有几个值的重定向。GoogleCode游乐场有一个相同的功能,可以在大多数可视化中使用相同类型的功能
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('visualization', '1.1', {packages: ['barchart']});
</script>
<script type="text/javascript">
function drawVisualization() {
// Create and populate the data table.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Sales');
data.addColumn('number', 'Expenses');
data.addRows(4);
data.setValue(0, 0, '2004');
data.setValue(0, 1, 1000);
data.setValue(0, 2, 400);
data.setValue(1, 0, '2005');
data.setValue(1, 1, 1170);
data.setValue(1, 2, 460);
data.setValue(2, 0, '2006');
data.setValue(2, 1, 660);
data.setValue(2, 2, 1120);
data.setValue(3, 0, '2007');
data.setValue(3, 1, 1030);
data.setValue(3, 2, 540);
chart = new google.visualization.LineChart(document.getElementById('visualization'));
chart.draw(data, {width: 400, height: 240, title: 'Company Performance',
vAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
});
// a click handler which grabs some values then redirects the page
google.visualization.events.addListener(chart, 'select', function() {
// grab a few details before redirecting
var selection = chart.getSelection();
var row = selection[0].row;
var col = selection[0].column;
var year = data.getValue(row, 0);
location.href = 'http://www.google.com?row=' + row + '&col=' + col + '&year=' + year;
});
}
google.setOnLoadCallback(drawVisualization);
</script>
</head>
<body>
<div id="visualization" style="width: 600px; height: 400px;"></div>
</body>
</html>
load('visualization','1.1',{packages:['barchart']});
函数drawVisualization(){
//创建并填充数据表。
var data=new google.visualization.DataTable();
data.addColumn('string','Year');
data.addColumn('number','Sales');
data.addColumn(“数字”、“费用”);
数据。添加行(4);
数据集值(0,0,'2004');
数据设置值(0,1,1000);
数据设置值(0,2400);
数据。设定值(1,0,'2005');
数据设置值(1,1170);
数据。设定值(1,2460);
数据。设定值(2,0,'2006');
数据。设定值(2,1660);
数据设置值(2,21120);
数据集值(3,0,'2007');
数据。设定值(3,1,1030);
数据设置值(3,2540);
chart=新的google.visualization.LineChart(document.getElementById('visualization');
图表.绘图(数据,{宽:400,高:240,标题:'公司业绩',
变量:{title:'Year',titleTextStyle:{color:'red'}
});
//一个点击处理程序,它获取一些值,然后重定向页面
google.visualization.events.addListener(图表'select',函数(){
//在重定向之前获取一些详细信息
var selection=chart.getSelection();
var row=选择[0]。行;
var col=selection[0]。列;
var year=data.getValue(行,0);
location.href=http://www.google.com?row=“+行+”&列=“+列+”&年=“+年;
});
}
setOnLoadCallback(drawVisualization);
getSelection()。列不起作用,它返回一个“未知”值。该问题已发布在页面中。应该是:location.href='+row+'&col='+col+'&year='+year;(标题未定义)我认为这是因为getSelection返回一个数组,所以您应该执行getSelection()[n]。column在上面的bug report链接中,底部有一个示例代码,显示行号没有问题,它不仅仅适用于列号。