用于创建带有注释的谷歌图表折线图的选项

时间:2013-12-19 01:23:35

标签: google-visualization

这是我的数据:

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 个答案:

答案 0 :(得分:1)

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

您是否打算将日期作为注释或值?如果它们是值,则必须将它们放在第一列:

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

为了使用“annotationText”数据角色,前面的列必须是“注释”角色列。 “注释”角色在关联数据点的图表上创建文本标签,“annotationText”角色创建工具提示,以显示用户将鼠标悬停在标签上。