2013-12-19 60 views
0

这里谷歌图表折线图是我的数据:选项来创建具有注释

dataToDisplay=[[156,"2013-12-01","note one"], 
       [206,"2013-12-02","note two"], 
       [280,"2013-12-03","note three"], 
       [320,"2013-12-04","note four"], 
       [0,"2013-12-05",""]] 

这里是做一个折线图的代码:

chartData = new google.visualization.DataTable(); 
chartData.addColumn('number', 'Miles'); 
chartData.addColumn('string', 'Date'); 
chartData.addColumn({type:'string', role:'annotationText'}); 
chartData.addRows(dataToDisplay); 

graphTitle = 'Mileage'   
var options = { 
     title: graphTitle, 
     height:600 
}; 

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

和错误:

"Data column(s) for axis #0 cannot be of type string" 

我不知道发生了什么。哪一列是轴#0?

此外,有没有建立与使用类似的注释折线图的方式:

var chartData = google.visualization.arrayToDataTable(dataArray); 

如果是这样,怎么会dataArray中必须构建?

回答

1

LineChart只接受字符串作为注释列或域列。第一列是域列,并且注释列必须如此指定。在你的情况下,“日期”列导致了问题,因为它是第二列,因此预计是数据(“数字”类型)列或注释列。您没有将其指定为注释列,这就是您遇到错误的原因。

您打算让日期成为注释或值吗?如果他们的目的是价值观,就必须把它们放在第一列:

chartData = new google.visualization.DataTable(); 
chartData.addColumn('string', 'Date'); 
chartData.addColumn('number', 'Miles'); 
chartData.addColumn({type:'string', role:'annotation'}); 

为了使用“annotationText”数据作用下,前述列必须是一个“注解”的角色列。 “注释”角色在关联数据点的图表上创建文本标签,“annotationText”角色创建工具提示以显示用户何时悬停在标签上。

+0

工作就像一个魅力!谢谢。 – user1126515