Google Geo Chart不兼容的数据表:错误:表包含的列数超出预期(期望3列)

时间:2014-01-09 04:57:47

标签: google-visualization

我有以下代码并发现不兼容的数据表:错误:表包含的列数超出预期(期望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);

};

2 个答案:

答案 0 :(得分:6)

Geocharts不支持拥有3个不同的数据列。

地区图表

对于区域图表,数据应仅包括:

  1. 地区(国家,次大陆,大陆等)
  2. 颜色(根据单个数据类别确定每个区域的颜色)
  3. 标记图

    对于标记图表,数据应仅包括:

    1. 位置(纬度/经度或指示位置的字符串)
    2. (可选)仅限纬度/经度位置的位置名称
    3. 颜色(基于单个数据类别的标记的颜色)
    4. 大小(基于单个数据类别的标记大小)
    5. 目前,您的示例是带有第三个数据类别的标记图表,不支持(User将确定颜色,Company将确定尺寸)。

答案 1 :(得分:3)

这是你的解决方案:

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, {...