我有以下代码并发现不兼容的数据表: 错误:表包含的列数超过预期(预期 3 列)
function drawMarkersMap() {
var data = google.visualization.arrayToDataTable([
['State', 'User', 'Company','data'],
['Australian Capital Territory', 100, 160, 100],
['Northern Territory', 250, 250, 200 ],
['Western Australia', 150, 350, 300],
['New South Wales', 300, 100, 400],
['Victoria', 50, 156, 50],
['Queensland', 10, 150, 20],
['South Australia', 160, 168, 23],
['Tasmania', 250, 568, 3443]
]);
var options = {
region : 'AU',
displayMode : 'markers',
colorAxis : {
colors: ['blue', 'red']
}
};
var chart = new google.visualization.GeoChart(document.getElementById('chart_div_geo'));
chart.draw(data, options);
};
Geocharts不支持像您那样拥有3个不同的数据列。
区域图表
对于区域图表,数据应仅包括:
- 地区(国家、次大陆、大陆等)
- 颜色(根据单个数据类别确定每个区域的颜色)
标记图表
对于标记图表,数据应仅包括:
- 位置
- (纬度/经度或指示位置的字符串)
- (可选)仅纬度/经度位置的位置名称
- 颜色(基于单个数据类别的标记颜色)
- 大小(基于单个数据类别的标记大小)
示例是具有第三个数据类别的标记图表,该类别不受支持(您的User
将决定颜色,Company
将决定大小)。
这是您的解决方案:
var view = new google.visualization.DataView(data);
view.setColumns([0, {
type: 'number',
label: 'Total Staff',
calc: function (dt, row) {
return {
v: dt.getValue(row, 1),
f: dt.getFormattedValue(row, 1) + ' (' + dt.getFormattedValue(row, 2) + ' IT, ' + dt.getFormattedValue(row, 3) + ' HR, ' + dt.getFormattedValue(row, 4) + ' Sales)'
}
}
}]);
chart.draw(view, {...