Javascript 如何从h轴标签与google条形图交互

Javascript 如何从h轴标签与google条形图交互,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,我使用谷歌条形图作为导航界面,通过点击h轴标签显示日期范围的记录,在我的例子中,h轴标签显示月份和年份 问题是没有交互性,例如当您滚动h轴上的日期时,光标会发生变化 我使用以下方式访问h轴标签: google.visualization.events.addListener(chart, 'click', function (e) { var bar_date = e.targetID.match(/hAxis#0#label#(\d+)/); 这将获取一个对象,从中获取与图表中条形图关联的

我使用谷歌条形图作为导航界面,通过点击h轴标签显示日期范围的记录,在我的例子中,h轴标签显示月份和年份

问题是没有交互性,例如当您滚动h轴上的日期时,光标会发生变化

我使用以下方式访问h轴标签:

google.visualization.events.addListener(chart, 'click', function (e) {

var bar_date = e.targetID.match(/hAxis#0#label#(\d+)/);
这将获取一个对象,从中获取与图表中条形图关联的日期

可以通过同一事件更改h轴上单击的标签吗


更新:使用符合公认答案的工作示例,您当然可以更改图表标签

首先,我们必须将h轴标签与其他图表标签区分开来。
这可以通过使用
元素上的属性来完成。
这里使用了
文本锚定
属性。
单击标签时,颜色将更改为红色

请参阅以下工作片段

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
var data=new google.visualization.arrayToDataTable([
[“日期”,“值”],
[新日期(2019,0),2924],
[新日期(2019年1月1日)2075],
[新日期(2019年2月2日),2516],
]);
var container=document.getElementById('chart_div');
var chart=新的google.visualization.ColumnChart(容器);
google.visualization.events.addListener(图表,'click',函数(e){
var bar#u date=e.targetID.match(/hAxis#0#label#(\d+/);
var labels=container.getElementsByTagName('text');
var bar_标签=[];
//获取图表标签
Array.prototype.forEach.call(标签,函数(标签){
//查找h轴标签
if(label.getAttribute('text-anchor')=='middle'){
条形码标签。推送(标签);
}
});
//单击查找标签
如果(截止日期){
bar_标签[bar_日期[1]].setAttribute('fill','#ff0000');
}
});
图表绘制(数据、{
哈克斯:{
格式:“MM/yy”,
ticks:data.getdistinctValue(0)
}
});
});


感谢代码WhiteHat,它在我的图表上不起作用-可能是因为图表数据结构(例如“行”):[{“c”:[{“v”:“2014年9月”},{“v”:100},{“v”:0},即c=column和v=value再次表示感谢,但它仍然不起作用(即日期没有改变颜色),“9”:{},…}这意味着它没有拾取文本属性可能您可以编辑问题以共享代码,在上面运行良好…我认为这是数据结构,请注意没有“id”{“cols”:[{“label”:“month”,“type”:“string”},{“label”:“orange”,“type”:“number”},{“label”:“apple”,“type”:“number”},{“label”:“banana”,“type:“number”}],“rows:[{c:[{v:“Sep 2014”},{“v”:100},{“v”:0},{“v”:0}]},我也在以不同的方式初始化图表:google.charts.load('current',{packages:['corechart',bar']});google charts.setOnLoadCallback(drawColColors);函数drawColColors(){var data=new google.visualization.DataTable();var view=new google.visualization.DataView(data);view.setColumns([0,1]);