Javascript 使用谷歌图表(组合图表)在自己的条形图上垂直居中标注

Javascript 使用谷歌图表(组合图表)在自己的条形图上垂直居中标注,javascript,charts,google-visualization,Javascript,Charts,Google Visualization,是否可以将注释垂直放置在条形图的中心位置?它不能仅通过annotation.stem.length实现。另一件事是使用MutationObserver设置注释的y位置,但我不知道如何获得条的高度,所以我有了将在y属性上设置多少y的参考。是否有任何方法可以动态调整条上的注释垂直居中 google.charts.load(“当前”,{packages:[“corechart”,“bar”]}); google.charts.setOnLoadCallback(drawBVandBA); 函数dr

是否可以将注释垂直放置在条形图的中心位置?它不能仅通过annotation.stem.length实现。另一件事是使用MutationObserver设置注释的y位置,但我不知道如何获得条的高度,所以我有了将在y属性上设置多少y的参考。是否有任何方法可以动态调整条上的注释垂直居中

google.charts.load(“当前”,{packages:[“corechart”,“bar”]});
google.charts.setOnLoadCallback(drawBVandBA);
函数drawBVandBA(){
var dataArr=[
[“月”、“账面订单”、“购买账户”、“吞吐量”],
[“一月”,200.251253379.09],
[“二月”,533.391253379.09],
[“三月”,564.791123379.09],
[“Apr”,475.661154379.09],
[“五月”,564.751203379.09],
[“Jun”,200.231189379.09],
[“七月”,475.661201379.09],
[“八月”,513.431228379.09],
[“九月”,423.771175379.09],
[“十月”,399.881024379.09],
[“11月”,546.471243379.09],
[“Dec”,435.651209379.09]
];
var data=google.visualization.arrayToDataTable(dataArr);
var view=newgoogle.visualization.DataView(数据);
view.setColumns([
0,
1.
{
计算:“字符串化”,
资料来源专栏:1,
键入:“字符串”,
角色:“注释”
},
2.
{
计算:“字符串化”,
资料来源专栏:2,
键入:“字符串”,
角色:“注释”
}
]);
变量选项={
动画:{
持续时间:1000,
放松:“出去”,
启动:正确
},
注释:{
文本样式:{
尺寸:11,
颜色:“黑色”,
颜色:“无”
}
},
图表区:{
背景色:“B9CDE5”,
右:“6%”,
宽度:“80%”
},
阀门:{
0: {
viewWindowMode:“显式”,
视图窗口:{
最高:1400,
最低:0
},
网格线:{
颜色:“透明”,
计数:8
}
},
1: {
视图窗口:{
最高:600,
最低:0
},
网格线:{
颜色:“透明”,
计数:7
}
}
},
系列:{
0: {
注释:{
茎:{
长度:80
}
},
目标指数:1,
颜色:“4F81BD”,
类型:“条”
},
1: {
注释:{
茎:{
长度:7
}
},
键入:“行”,
targetAxisIndex:0,
颜色:“C0504D”,
点形:“正方形”,
要点可见:正确
}
},
背景色:“8064A2”,
图例:{
位置:“顶部”,
对齐:“开始”
}
};
var container=document.getElementById(“bv_和_ba”);
var chart=新的google.visualization.ColumnChart(容器);
图表绘制(视图、选项);
}

有一个图表方法-->
chart.getChartLayoutInterface()

这将返回一个具有自己方法的对象-->
getBoundingBox

它接受一个id字符串

条形元素的id字符串=
bar#序列号#行号

第一个系列中的第一个条形图=
bar#0#0

获取条形图的高度-->
chartLayout.getBoundingBox('bar#0#0')

获得高度后,可以移动注释

请参阅以下工作片段

google.charts.load(“当前”,{packages:[“corechart”,“bar”]});
google.charts.setOnLoadCallback(drawBVandBA);
函数drawBVandBA(){
var dataArr=[
[“月”、“账面订单”、“购买账户”、“吞吐量”],
[“一月”,200.251253379.09],
[“二月”,533.391253379.09],
[“三月”,564.791123379.09],
[“Apr”,475.661154379.09],
[“五月”,564.751203379.09],
[“Jun”,200.231189379.09],
[“七月”,475.661201379.09],
[“八月”,513.431228379.09],
[“九月”,423.771175379.09],
[“十月”,399.881024379.09],
[“11月”,546.471243379.09],
[“Dec”,435.651209379.09]
];
var data=google.visualization.arrayToDataTable(dataArr);
var view=newgoogle.visualization.DataView(数据);
view.setColumns([0,1,1{
计算:“字符串化”,
资料来源专栏:1,
键入:“字符串”,
角色:“注释”
}, 2, {
计算:“字符串化”,
资料来源专栏:2,
键入:“字符串”,
角色:“注释”
}]);
变量选项={
动画:{
持续时间:1000,
放松:“出去”,
启动:正确
},
注释:{
文本样式:{
尺寸:11,
颜色:“黑色”,
颜色:“无”
}
},
图表区:{
背景色:“B9CDE5”,
右:“6%”,
宽度:“80%”
},
阀门:{
0: {
viewWindowMode:“显式”,
视图窗口:{
最高:1400,
最低:0
},
网格线:{
颜色:“透明”,
计数:8
}
},
1: {
视图窗口:{
最高:600,
最低:0
},
网格线:{
颜色:“透明”,
计数:7
}
}
},
系列:{
0: {
注释:{
茎:{
颜色:'透明',
长度:0
}
},
目标指数:1,
颜色:“4F81BD”,
类型:“条”
},
1: {
注释:{
茎:{
长度:7
}
},
键入:“行”,
targetAxisIndex:0,
颜色:“C0504D”,
点形:“正方形”,
要点可见:正确
}
},
背景色:“8064A2”,
图例:{
位置:“顶部”,
对齐:“开始”
}
};
var container=document.getElementById(“bv_和_ba”);
var chart=新的google.visualization.ColumnChart(容器);
var注释=[];
var图表布局;
var annotationsReady=false;
//得到