Charts 谷歌图表API错误“;给定轴上的所有系列必须具有相同的数据类型;
我有使用谷歌图表的线条图。此图是使用以下代码创建的Charts 谷歌图表API错误“;给定轴上的所有系列必须具有相同的数据类型;,charts,Charts,我有使用谷歌图表的线条图。此图是使用以下代码创建的 function drawChart() { var data = google.visualization.arrayToDataTable([ ['Categegories', 'R1' , 'R2' , 'R3' , 'R4' , 'R5' , 'R6' ], ['A', 1, 4, 2, 4, 1, null], ['D',
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Categegories', 'R1' , 'R2' , 'R3' , 'R4' , 'R5' , 'R6' ],
['A', 1, 4, 2, 4, 1, null],
['D', 3, null, null, 7, null, 1],
['G', null, null, null, 8, null, null],
]);
var options = {
title: 'Graph',
pointSize: 6,
vAxis: {minValue:0, maxValue:10,gridlines:{count:6}},
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
chart.draw(data, options);
}
现在令人惊讶的是,如果我删除一个数据行['D',3,null,null,7,null,1],
它会产生一个错误,说明给定轴上的所有系列必须具有相同的数据类型
我已将代码缩减为一行,发现
null
值存在问题
e、 g
它生成图形,而如果我在数据中的任何位置添加null
值,即在(2,1,1)的位置,它不会
正在等待有关设置某种类型选项以处理
null
值的专家指导。。。非常奇怪的是,有些时间空值起作用,有些时间不起作用..:(最后,我找到了问题的解决方案。我希望这能帮助像我这样的许多人。问题基本上是arrayToDataTable方法的局限性。数据行在所有列中都必须具有正确的类型。由于行中有空值,API要么假设该列的数据类型为null,要么抛出错误获取无效数据类型时出错。若要解决此问题,必须切换到标准DataTable构造函数
var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Health (P)');
data.addColumn('number', 'Health (A)');
data.addColumn('number', 'Gender (P)');
data.addColumn('number', 'Gender (A)');
data.addColumn('number', 'Education (P)');
data.addColumn('number', 'Education (A)');
data.addColumn('number', 'Agriculture (P)');
data.addColumn('number', 'Agriculture (A)');
data.addColumn('number', 'Social protection (P)');
data.addColumn('number', 'Social protection (A)');
data.addColumn('number', 'Environment (P)');
data.addColumn('number', 'Environment (A)');
data.addColumn('number', 'Water/sanitation (P)');
data.addColumn('number', 'Water/sanitation (A)');
data.addRows([
['2008',81.06,null,1.32,null,94.68,0,13.41,null,30.36,null,19.78,null,36.87,null],
['2009',27.13,null,22.34,null,33.6,null,79.92,null,1.34,null,89.77,0,15.68,null],
['2010',104.89,0,14.61,null,33.46,null,30.29,null,22.28,null,107.81,null,1.39,null],
['2011',55,0,110.69,null,1.3,null,106.24,0,14.45,null,27.34,null,30.71,null],
['2012',29.96,null,27.88,null,44.77,null,133.83,null,1.31,null,105.01,null,17.83,null],
['2013',0,null,0,null,0,null,0,null,0,null,0,null,0,null]
]);
从以下链接复制
或者,使用arrayToDataTable()可以在标题行中指定类型。有关详细信息,请参阅文档
我创建了一个条形图,其中两列带有字符串,一列带有数字。我本来打算显示一个视图,该视图将第二列隐藏起来,但却忘记了。对我来说,这个错误是因为有一个附加列从未附加任何值。我认为在标题行中指定类型将解决这个问题
var data = google.visualization.arrayToDataTable([
['Category', {label: 'Return', type: 'number'}, {label: 'Risk', type: `enter code here`'number'}],
[1.5, 20, 50]
]);
我是通过从Google工作表中创建一个图表而得到这个错误的。删除所有空列修复了这个问题。这不是一个大问题,但仍然很烦人。有一个选项
interpoleNulls:'true'
但这对包包有效:['linechart']
:(我需要它对包包有效:[“corechart”]
var data = google.visualization.arrayToDataTable([
['Categegories', {label: 'R1', type: 'number'} , {label: 'R2', type: 'number'} , {label: 'R3', type: 'number'} , {label: 'R4', type: 'number'} , {label: 'R5', type: 'number'} , {label: 'R6', type: 'number'} ],
['A', 1, 4, 2, 4, 1, null],
['D', 3, null, null, 7, null, 1],
['G', null, null, null, 8, null, null],
]);
var data = google.visualization.arrayToDataTable([
['Category', {label: 'Return', type: 'number'}, {label: 'Risk', type: `enter code here`'number'}],
[1.5, 20, 50]
]);