Dynamic 动态谷歌图表上的角色(间隔)

Dynamic 动态谷歌图表上的角色(间隔),dynamic,intervals,google-visualization,role,Dynamic,Intervals,Google Visualization,Role,如何使用:如果动态填充图形 这是我代码的一部分: ... data.addRows(dates.length); for (i = 0; i < dates.length; i++){ if (i!=0){ data.setValue( i, 0, new Date(dates[i]) ); temp = graph[dates[i]]; var j = 0; if (temp){ for (

如何使用:如果动态填充图形

这是我代码的一部分:

...
data.addRows(dates.length);
for (i = 0; i < dates.length; i++){
    if (i!=0){
        data.setValue( i, 0, new Date(dates[i]) ); 
        temp = graph[dates[i]];
        var j = 0;
        if (temp){
            for (j = 0; j < groups.length; j++){
                if ( groups[j] in temp){
                    var volume = parseFloat(temp[groups[j]]);
                    console.log(i + '  ' + j + '  ' + volume);
                    data.setValue( i, j+1, volume )
                }
            }
        }
    }else{
        data.setValue( i, 0, new Date(dates[i]) ); 
        var j = 0;
        for (j = 0; j < groups.length; j++){
            data.setValue( 0, j+1, 0 )
        }
    }
}
...
。。。
data.addRows(日期.长度);
对于(i=0;i

使用“data.setValue”设置值后,如何设置角色?(我需要间隔值)类似“data.setRole”的东西会很棒!!:-)

您可以创建不带任何角色的
数据表
,然后创建一个
数据视图
,为视图中的列分配角色。文档说明了如何执行此操作:

DataView.setColumns
Method

创建视图时,可以显式设置列的角色。 这在创建新的计算列时非常有用。看见
DataView.setColumns()
了解更多信息

DataView.setColumns()
解释了如何执行此操作,如下所示:

setColumns(columnIndexes)

  • columnIndexes—数字和/或对象的数组(可以混合): 数字指定要包含在视图中的源数据列的索引。数据未经修改就通过了。如果你 需要显式定义角色或其他列属性, 指定具有sourceColumn属性的对象
  • 对象指定计算列。计算列将创建一个 值,并将其添加到视图中。对象 必须具有以下属性:
    • calc[function]-将为列中的每一行调用以计算该单元格的值的函数。功能 签名是func(dataTable,row),其中dataTable是源 DataTable,行是源数据行的索引。这个 函数应返回由指定类型的单个值 类型
    • type[string]-calc函数返回的值的JavaScript类型
    • 标签[可选,字符串]-分配给此生成列的可选标签。如果未指定,视图列将没有
      标签
    • id[可选,字符串]-分配给此生成列的可选id
    • sourceColumn-[可选,数字]要用作值的源列;如果已指定,请不要指定calc或type属性。
      这类似于传入数字而不是对象,但
      允许您为新列指定角色和属性
    • 属性[可选,对象]-包含要分配给此列的任意属性的对象。如果未指定,则显示视图
      列将没有属性
    • 角色[可选,字符串]-分配给此列的角色。如果未指定,则不会导入现有角色。
  • 例如,如果你的区间列是第3列,你会说:

    dataView.setColumns([0,1,{sourceColumn:2,角色:'interval'}])

    上面设置了列0和列1,没有角色,而列2被指定为间隔列

    编辑

    响应注释,间隔在数据集中。以下是一个例子:

    function drawVisualization() {
      // Create and populate the data table.
      var data = google.visualization.arrayToDataTable([
        ['Year', 'Austria', 'Interval A', 'Interval B'],
        ['2003',  100,   95,       125],
        ['2004',  110,   96,       150],
        ['2005',  120,   97,       175],
        ['2006',  130,   98,       200],
        ['2007',  140,   99,       225],
        ['2008',  150,   100,      250]
      ]);
    
      // Create Data View using columns 2 & 3 as intervals
      var dataView = new google.visualization.DataView(data);
      dataView.setColumns([0, 1, {sourceColumn: 2, role: 'interval'}, {sourceColumn: 3, role: 'interval'}]);
    
      // Create and draw the visualization.
      new google.visualization.LineChart(document.getElementById('visualization')).
        draw(dataView,
             {width:600, height:400,
              hAxis: {title: "Year"}}
            );
    }
    

    可以将原始数据表中的间隔值作为列包括在内。然后使用dataview将这些列更改为“interval”角色列。然后绘制数据视图。这将按预期提供错误条(间隔列)。

    您可以创建不带任何角色的
    数据表
    ,然后创建一个
    数据视图
    ,为视图中的列分配角色。文档说明了如何执行此操作:

    DataView.setColumns
    Method

    创建视图时,可以显式设置列的角色。 这在创建新的计算列时非常有用。看见
    DataView.setColumns()
    了解更多信息

    DataView.setColumns()
    解释了如何执行此操作,如下所示:

    setColumns(columnIndexes)

  • columnIndexes—数字和/或对象的数组(可以混合): 数字指定要包含在视图中的源数据列的索引。数据未经修改就通过了。如果你 需要显式定义角色或其他列属性, 指定具有sourceColumn属性的对象
  • 对象指定计算列。计算列将创建一个 值,并将其添加到视图中。对象 必须具有以下属性:
    • calc[function]-将为列中的每一行调用以计算该单元格的值的函数。功能 签名是func(dataTable,row),其中dataTable是源 DataTable,行是源数据行的索引。这个 函数应返回由指定类型的单个值 类型
    • type[string]-calc函数返回的值的JavaScript类型
    • 标签[可选,字符串]-分配给此生成列的可选标签。如果未指定,视图列将没有
      标签
    • id[可选,字符串]-分配给此生成列的可选id
    • sourceColumn-[可选,数字]要用作值的源列;如果指定,请不要指定