【问题标题】:Dynamic array for googlechart json javascriptgooglechart json javascript的动态数组
【发布时间】:2014-10-30 08:44:45
【问题描述】:

我想用 googlechart (https://google-developers.appspot.com/chart/interactive/docs/gallery/linechart) 制作折线图。 但我无法为图表格式化数组。

数组必须如下所示:

var data = google.visualization.arrayToDataTable([
  ['Year', 'Sales', 'Expenses'],
  ['2004',  1000,      400],
  ['2005',  1170,      460],
  ['2006',  660,       1120],
  ['2007',  1030,      540]
]);

我正在努力做到这一点:

var data = google.visualization.arrayToDataTable([['Year', 'Marque1', 'Marque2', 'Marque3', 'Marque4']]);
var i=1;
msg.forEach(function(entry) {               
    data.addRows([
      ['2004',  i-1,      0,      i,      6],
      ['2004',  i,      0,      i,      6],
      ['2004',  i+1,      0,      i,      6]
    ]);                 
    i++;
});

这不是真正的值,但我会在能够制作数组时设置它们。

我在运行时在浏览器控制台中出现此错误:

Uncaught Error: Type mismatch. Value 0 does not match type string in column index 1 

当我输入一些字符串时,谷歌会向我发送一条错误消息而不是图表:

Data column(s) for axis #0 cannot be of type string

【问题讨论】:

  • 为什么不填写数组,然后用完整的数组调用google.visualisation.arrayToDataTable()
  • 这是个好主意,但我不知道如何填充数组......我试过这样,jsfiddle.net/yqrj42f5 并且我有“未定义不是函数”

标签: javascript arrays json google-visualization


【解决方案1】:

我不知道我是否明白你的意思,但试试这个:

var rows = new Array();
rows.push(new Array('Year', 'Marque1', 'Marque2', 'Marque3', 'Marque4'));
var i = 1;
msg.forEach(function(entry) {
    rows.push(new Array(5, 5, 5, 5, 5)); // replace it with your values
}
var data = google.visualization.arrayToDataTable(rows);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2010-09-19
    相关资源
    最近更新 更多