我的数据集1就像这样 -
var data1 = new google.visualization.DataTable();
data1.addColumn('string','Country');
data1.addColumn('string','Data1');
for(var j=0;j<enterpriseArray.length;j++){
data1.addRows([[enterpriseArray[j], suspiciousCountArray[j]]]);
}
数据集2非常相似 -
var data2 = new google.visualization.DataTable();
data2.addColumn('string','Country');
data2.addColumn('string','Data2');
for(var k=0;k<enterpriseArray.length;k++){
data2.addRows([[enterpriseArray[k], malicousCountArray[k]]]);
}
最后这个 -
var jointData = google.visualization.data.join(data1, data2, 'full', [[0, 0]], [1], [1]);
var chart = new google.visualization.GeoChart(document.getElementById('some-div'));
chart.draw(jointData, options);
我收到此错误,而不是在控制台上,而是在我的图表应该显示的确切位置。
Error- Incompatible data table: Error: Table contains more columns than expected (Expecting 2 columns)
P.S.-如果我使用我的数据集(使用硬编码数据,而不是动态数据) -
var data1 = google.visualization.arrayToDataTable([
['Country', 'Activity'],
['Germany', 100],
['United States', 200],
['India', 350],
]);
var data2 = google.visualization.arrayToDataTable([
['Country', 'Activity'],
['Germany', 200],
['United States', 300],
['India', 50],
]);
然后正确显示图表/地图,没有任何错误。
答案 0 :(得分:0)
查看Data Format的GeoChart,
根据您要显示的图表类型,数据可以采用三种格式之一......
1)区域模式
数据表应至少有一个'string'
列用于位置,
和一个可选的'number'
颜色列
2)标记模式
数据表应至少有一个'string'
列用于位置,
或两个'number'
列为纬度和&amp;经度分别,
然后是标记颜色的可选'number'
列,
标记大小的另一个'number'
列
3)文字模式
数据表应至少有一个'string'
列用于位置,
以及文本大小的可选'number'
列
没有一种格式允许多个'string'
列,
这就是为什么你收到以下错误...
Table contains more columns than expected
将这些列切换为'number'
时收到的错误,
是因为您加载的数字是'string'
格式
使用parseFloat
或parseInt
...
data1.addRows([[enterpriseArray[j], parseFloat(suspiciousCountArray[j])]]);
答案 1 :(得分:0)
这里的问题是我需要将字符串转换为整数(来自我想要显示的动态数据;为此使用parseInt),然后将Data1和Data2的类型更改为&#39; number&#39 ;正如 Pirate X 在他的评论中指出的那样。