Javascript Google visualization双Y轴图表将线与特定条对齐

Javascript Google visualization双Y轴图表将线与特定条对齐,javascript,google-visualization,Javascript,Google Visualization,我附上了双Y轴图表的片段 Ontime%目标的橙色点与Ontime%的蓝色条相对应。两者都已分配给targetAxisIndex:0 我可以移动/移动点以在蓝色条上方对齐吗?(所需位置见附图) 一如既往地感谢各位专家 google.charts.load('current',{'packages':['corechart','bar']}); google.charts.setOnLoadCallback(drawStuff); 函数drawStuff(){ var button=docum

我附上了双Y轴图表的片段

Ontime%目标的橙色点与Ontime%的蓝色条相对应。两者都已分配给
targetAxisIndex:0

我可以移动/移动点以在蓝色条上方对齐吗?(所需位置见附图)

一如既往地感谢各位专家

google.charts.load('current',{'packages':['corechart','bar']});
google.charts.setOnLoadCallback(drawStuff);
函数drawStuff(){
var button=document.getElementById('change-chart');
var chartDiv=document.getElementById('chart_div');
var data=google.visualization.arrayToDataTable([
['Type','Ontime%','Count','Ontime%Goal'],
[AE',90500100]
]);
变量分类={
宽度:900,
系列:{
0:{targetAxisIndex:0,键入:'bars'},
1:{targetAxisIndex:1,类型:'bars'},
2:{targetAxisIndex:0,类型:'line',点大小:8,点形状:{type:'circle'},
},
标题:“左侧为Ontime%,右侧为Count”,
酒吧:{
宽度:“60%”
},
言辞:{
最小值:0
},
阀门:{
//向每个轴添加标题。
0:{title:'Ontime%},
1:{title:'Count'}
}
};
函数drawClassicChart(){
var classicChart=新的google.visualization.ColumnChart(chartDiv);
classicChart.draw(数据、分类);
button.innerText='更改为材料';
button.onclick=drawMaterialChart;
}
drawClassicChart();
};




任何现成的工具都不允许您调整点的位置

您可以在图表的就绪事件中手动移动它。
但当用户悬停该点时,图表会将其向后移动

当图表向后移动时,您可以使用
MutationObserver
移动点,
但这只会导致它在悬停时从一个点闪烁到另一个点

除非禁用工具提示,否则无法执行太多操作

请参阅以下工作片段,
将该点悬停以查看其移动

google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
//var button=document.getElementById('change-chart');
var chartDiv=document.getElementById('chart_div');
var data=google.visualization.arrayToDataTable([
['Type','Ontime%','Count','Ontime%Goal'],
[AE',90500100]
]);
变量分类={
宽度:900,
系列:{
0:{targetAxisIndex:0,键入:'bars'},
1:{targetAxisIndex:1,类型:'bars'},
2: {
targetAxisIndex:0,
键入:“行”,
点数:8,
pointShape:{type:'circle'},
},
},
标题:“左侧为Ontime%,右侧为Count”,
酒吧:{
宽度:“60%”
},
言辞:{
最小值:0
},
阀门:{
0:{title:'Ontime%},
1:{title:'Count'}
}
};
函数drawClassicChart(){
var classicChart=新的google.visualization.ColumnChart(chartDiv);
google.visualization.events.addListener(classicChart,'ready',function(){
var chartLayout=classicChart.getChartLayoutInterface();
var bounds=chartLayout.getBoundingBox('bar#0#0');
var observer=新的MutationObserver(函数(){
var circles=chartDiv.getElementsByTagName('circle');
如果(圆圈长度>1){
圆[1].setAttribute('cx',(bounds.left+(bounds.width/2));
}
});
观察者,观察者{
儿童名单:是的,
子树:真
});
});
classicChart.draw(数据、分类);
//button.innerText='更改为材料';
//button.onclick=drawMaterialChart;
}
drawClassicChart();
});


再次感谢@WhiteHat。我已经预料到这可能是不可能的。在我的情况下,工具提示是必需的。我如何将您的回复标记为答案?没问题,请查看答案,我已经尝试过,但由于结果而没有发布…希望这有帮助,您可以使用所有自定义工具提示我能够在我的项目中实现这一点。再次感谢您提供了出色的解决方案。