Charts 谷歌图表,聚合/组a过滤数据表

Charts 谷歌图表,聚合/组a过滤数据表,charts,google-visualization,Charts,Google Visualization,我有一个DataTable、一个DateRangeFilter和一个聚合对象。 我希望可以使用DateRangeFilter来过滤DataTable中的数据,并将聚合限制在过滤后的DataTable中。但事实并非如此。 我是否做错了什么(可能忘记刷新/绘制),或者类似的事情是不可能的 我的代码在这里: 只能将一个数据表绑定到仪表板/筛选器 为了聚合筛选的数据表 等待ChartWrapper上的'ready'事件 从ChartWrapper聚合筛选的数据表 请参阅以下基于上一个问题的示例 go

我有一个DataTable、一个DateRangeFilter和一个聚合对象。 我希望可以使用DateRangeFilter来过滤DataTable中的数据,并将聚合限制在过滤后的DataTable中。但事实并非如此。 我是否做错了什么(可能忘记刷新/绘制),或者类似的事情是不可能的

我的代码在这里:


只能将一个数据表绑定到仪表板/筛选器

为了聚合筛选的数据表

  • 等待ChartWrapper上的
    'ready'
    事件
  • 从ChartWrapper聚合筛选的数据表
  • 请参阅以下基于上一个问题的示例

    google.charts.load('current'{
    回调:drawVisualization,
    包:['corechart','table','controls']
    });
    函数drawVisualization(){
    var data=new google.visualization.DataTable({
    科尔斯:[
    {id:'dat_ym',标签:'Start Date',键入:'Date'},
    {id:'user id',标签:'user id',类型:'string'},
    {id:'customer id',标签:'customer id',类型:'string'},
    {id:'s_minutes',标签:'minutes',键入:'number'}
    ],
    行:[
    {c:[{v:新日期('2016,01,01')},{v:'44836'},{v:'67205'},{v:1122}]},
    {c:[{v:新日期('2016,01,01')},{v:'86495'},{v:'67205'},{v:332}]},
    {c:[{v:新日期('2016,01,01')},{v:'44836'},{v:'228626'},{v:0}]},
    {c:[{v:新日期('2016,01,01')},{v:'86495'},{v:'228626'},{v:334}]},
    {c:[{v:新日期('2016,02,01')},{v:'44836'},{v:'67205'},{v:554}]},
    {c:[{v:新日期('2016,02,01')},{v:'86495'},{v:'67205'},{v:0}]},
    {c:[{v:新日期('2016,02,01')},{v:'44836'},{v:'228626'},{v:0}]},
    {c:[{v:新日期('2016,02,01')},{v:'86495'},{v:'228626'},{v:544}]},
    ]
    });
    变量选项={
    hAxis:{title:'',textStyle:{fontSize:'13'},textPosition:'in'},
    变量:{title:'',textStyle:{fontSize:'10'},
    序列类型:“条”,
    图例:{位置:'top',文本样式:{颜色:'black',字体大小:14},
    伊斯塔克德:是的
    };
    //构建仪表板
    var dashboard=newgoogle.visualization.dashboard(document.getElementById('dashboard-div'));
    var table=new google.visualization.ChartWrapper({
    chartType:'表',
    containerId:'表分区',
    选项:{
    allowHtml:是的
    }
    });
    var dateSlider=new google.visualization.ControlWrapper({
    controlType:'DateRangeFilter',
    containerId:“滑块div”,
    选项:{
    filterColumnIndex:0
    }
    });
    //表“就绪”事件
    google.visualization.events.addListener(表'ready',函数(){
    //按日期、客户分组数据
    var group_data=google.visualization.data.group(
    //从ChartWrapper获取数据表
    table.getDataTable(),
    [0, 2],
    [
    {'column':3,'aggregation':google.visualization.data.sum,'type':'number'}
    ]
    );
    //对分组数据进行排序
    分组的_data.sort([{column:0},{column:1}]);
    //获得独特的客户
    var custGroup=google.visualization.data.group(
    数据,
    [2]
    );
    //建立客户数据表
    var custData=new google.visualization.DataTable({
    科尔斯:[
    {id:'dat_ym',标签:'Start Date',键入:'Date'},
    ]
    });
    //为每个客户添加列
    对于(var i=0;i
    
    

    WhiteHat-slamdunk,又来了!很多。我有一个新的小问题。。。on:rowIndex=custData.addRow();setValue(行索引,0,新日期(行日期))。。。有没有办法也将标签设置为值集?我还使用这个逻辑按用户显示客户,所以现在我有了行中的用户id,我想让它显示用户名。我可以使用连接和/或视图,但这只会添加另一层数据。我想在数据表本身中修复它。塔克斯!我已经试过了,我得到一个错误:“custData.setLabel不是一个函数”;(很抱歉,这是
    setColumnLabel
    --引用…setColumnLabel是针对该列的,但我需要将标签设置为我使用custData.addRow()添加的单元格;我不确定是否遵循,单元格可以有值和格式化值,请参阅上一链接中的setCell…?)。。。?
        var dashboard = new google.visualization.Dashboard(document.getElementById('daterange_div'));
    dashboard.bind(slider, tableChart);
    dashboard.draw(dataAll);
    
    var grouped_data = google.visualization.data.group(
        dataAll,
        [0, 2],
        [
            {'column': 3, 'aggregation': google.visualization.data.sum, 'type': 'number'}
        ]
    );