2017-03-03 33 views
1

我一直在试图添加注释到谷歌条形图。我已经看到相关的问题,但无法解决。图表中有2个酒吧,我想在酒吧上显示数字。我在我的数据表中添加了2个注释列。图表绘制工作没有注释,并且在控制台没有错误。所以我需要一些帮助。这里是我的代码:不能添加注释到谷歌条形图

var options = { 
     chart: { 
      title: 'xxxx', 
      subtitle: 'xxxx', 
      focusTarget:'category' 
     }, 
     annotations: { 
      textStyle: { 
       color: 'black', 
       fontSize: 11, 
      }, 
      alwaysOutside: true 
     }, 
     height:300, 
     vAxis: {format: 'short'}, 
     colors: ['#17807E', '#4285F4'] 
    }; 

function drawAudits(Data) //data comes from another function with ajax call 
    {    
     var dataTbl = new google.visualization.DataTable();    
     dataTbl.addColumn('string', 'Months');    
     dataTbl.addColumn('number', 'Scheduled'); 
     dataTbl.addColumn('number', 'Done'); 
     dataTbl.addColumn({ type:'number' , role: 'annotation' }); 
     dataTbl.addColumn({ type:'number' , role: 'annotation' }); 

     for (var i = 0; i < Data.length; i++) 
     { 
      dataTbl.addRow([Data[i].month, Data[i].AllAudits, Data[i].DoneAudits, Data[i].AllAudits, Data[i].DoneAudits]); 
     } //last 2 column for annotations 

     var chart = new google.charts.Bar(document.getElementById('columnChartDiv')); 
     chart.draw(dataTbl,options); 
    } 

在此先感谢。

回答

0

​​不受材料图表支持,与其他几个选项一起...

看到 - >Tracking Issue for Material Chart Feature Parity #2143


以下选项将样式核心图表,类似于材料 ...

theme: 'material' 

注:注释栏应该直接跟它所代表的系列...


看到下面的工作片段...

google.charts.load('current', { 
 
    callback: function() { 
 
    var options = { 
 
     annotations: { 
 
     textStyle: { 
 
      color: 'black', 
 
      fontSize: 11, 
 
     }, 
 
     alwaysOutside: true 
 
     }, 
 
     chartArea: { 
 
     left: 36, 
 
     width: '100%' 
 
     }, 
 
     colors: ['#17807E', '#4285F4'], 
 
     focusTarget:'category', 
 
     height:300, 
 
     legend: { 
 
     position: 'bottom' 
 
     }, 
 
     theme: 'material', 
 
     title: 'xxxx', 
 
     vAxis: { 
 
     format: 'short', 
 
     viewWindow: { 
 
      max: 12 
 
     } 
 
     }, 
 
    }; 
 

 
    drawAudits(); 
 
    window.addEventListener('resize', drawAudits, false); 
 

 
    function drawAudits(Data) { 
 
     var dataTbl = new google.visualization.DataTable(); 
 
     dataTbl.addColumn('string', 'Months'); 
 
     dataTbl.addColumn('number', 'Scheduled'); 
 
     dataTbl.addColumn({ type:'number' , role: 'annotation' }); 
 
     dataTbl.addColumn('number', 'Done'); 
 
     dataTbl.addColumn({ type:'number' , role: 'annotation' }); 
 

 
     Data = [ 
 
     {month: 'Jan', AllAudits: 10, DoneAudits: 5}, 
 
     {month: 'Feb', AllAudits: 10, DoneAudits: 6} 
 
     ]; 
 

 
     for (var i = 0; i < Data.length; i++) { 
 
     dataTbl.addRow([Data[i].month, Data[i].AllAudits, Data[i].AllAudits, Data[i].DoneAudits, Data[i].DoneAudits]); 
 
     } 
 

 
     var chart = new google.visualization.ColumnChart(document.getElementById('columnChartDiv')); 
 
     chart.draw(dataTbl,options); 
 
    } 
 
    }, 
 
    packages: ['corechart'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="columnChartDiv"></div>

+0

是的,这是作品,但我不喜欢视图。 :(我使用的是..google.charts.Bar(..),现在我的图表在父级div中变小了,它看起来不像你的例子,我该如何解决它的风格?(谢谢你的方式:)) –

+0

不知道我按照这个问题,但看到上面所做的更改 - 添加选项'chartArea'和'legend' ... – WhiteHat

+0

哦,现在就明白了。我认为我应该搜索让它成为我想要的。你的回答非常有帮助,非常感谢你:) –