You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Visualization柱状图的每个柱子顶部显示数值(附代码)

在Google Visualization柱状图柱子顶部显示数值解决方案

嘿,我来帮你搞定这个需求!要在每个柱子顶部显示数值,咱们可以利用Google Visualization的annotation角色来实现,这是官方推荐的标注文本的方式。下面是具体的修改步骤和完整代码:

核心思路

给每个数据系列(Deposit、Withdraw、Bonus)添加对应的annotation列,用来存储要显示的数值文本,然后在图表配置里开启注释显示即可。

修改后的完整代码

var arr1 = []; 
var arr2 = []; 
// 1. 调整表头,为每个数值系列添加annotation角色
var arrHead = [
  'Date', 
  'Deposit', {role: 'annotation'}, 
  'Withdraw', {role: 'annotation'}, 
  'Bonus', {role: 'annotation'}
]; 
var obj = JSON.parse(data); 
arr1.push(arrHead); 

for(var i = 0; i < obj.length; i++) { 
  var objData = obj[i]; 
  // 处理日期
  arr2.push(objData.CreateDate == null ? "Empty" : objData.CreateDate); 
  
  // 处理Deposit及对应的注释
  var dpValue = objData.DP == null ? 0 : parseInt(objData.DP, 10);
  arr2.push(dpValue);
  arr2.push(dpValue.toString()); // 将数值转为文本作为注释
  
  // 处理Withdraw及对应的注释
  var wdValue = objData.WD == null ? 0 : parseInt(objData.WD, 10);
  arr2.push(wdValue);
  arr2.push(wdValue.toString());
  
  // 处理Bonus及对应的注释(保持你原代码的WD2逻辑)
  var bonusValue = objData.WD2 == null ? 0 : parseInt(objData.WD2, 10);
  arr2.push(bonusValue);
  arr2.push(bonusValue.toString());
  
  arr1.push(arr2); 
  arr2 = []; 
} 

var data = google.visualization.arrayToDataTable(arr1); 
var options = { 
  // title: "Transaction Graph", 
  hAxis: {title: 'Transaction Date', titleTextStyle: {color: 'red'}}, 
  vAxis: {title: 'Amount', titleTextStyle: {color: 'blue'} }, 
  width: 500, 
  height: 500, 
  bar: {groupWidth: 100}, 
  legend: { position: 'right', maxLines: 3 }, 
  tooltip: { trigger: 'select' },
  // 2. 配置注释的样式,确保显示在柱子顶部
  annotations: {
    textStyle: {
      fontSize: 12,
      color: '#333',
      bold: true
    },
    alwaysOutside: true // 强制注释显示在柱子外部(顶部)
  }
}; 

var chart = new google.visualization.ColumnChart(document.getElementById('chart_div')); 
chart.draw(data, options);

关键修改点说明

  • 表头调整:在每个数值列后面新增一个{role: 'annotation'}的列,告诉Google图表这列是用来做文本标注的。
  • 循环内添加注释文本:每个数值计算完成后,把它转成字符串push到arr2里,作为对应柱子的顶部标注内容。
  • 注释样式配置:在options里添加annotations配置,调整字体、颜色,并且设置alwaysOutside: true确保注释显示在柱子顶部,不会被柱子遮挡。

这样修改后,你的柱状图每个柱子顶部就会清晰显示对应的数值啦!

内容的提问来源于stack exchange,提问作者KRS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:21:02