Google visualization 如何计算google图表仪表板上的仪表板控件

Google visualization 如何计算google图表仪表板上的仪表板控件,google-visualization,Google Visualization,我想做的是计算一列中2个或更多ControlWrapper上的值,但到目前为止,我只意识到我只能看到1个ControlWrapper和另一个ControlWrapper之间的值,我希望使用“或”而不是“和” 这是一个关于我正在做的事情的例子,我希望看到1-3和6-8之间的内容,而我得到的回报(至少在这个例子中)是空的 我已经利用了他们的数据.getFilteredRows([{column:X,minValue:XY,maxValue:YY}]),只需创建两个滑块(就像你的图片一样),在两个滑

我想做的是计算一列中2个或更多ControlWrapper上的值,但到目前为止,我只意识到我只能看到1个ControlWrapper和另一个ControlWrapper之间的值,我希望使用“或”而不是“和”


这是一个关于我正在做的事情的例子,我希望看到1-3和6-8之间的内容,而我得到的回报(至少在这个例子中)是空的 我已经利用了他们的
数据.getFilteredRows([{column:X,minValue:XY,maxValue:YY}])
,只需创建两个滑块(就像你的图片一样),在两个滑块中的任何一个“打开”时添加一个侦听器,检查两者的minValue和maxValue,将所有四个值传递到函数中,然后将另一个图表的视图设置为返回的行

我的听众是这样的

google.visualization.events.addListener(control, 'statechange', function () {
    stateChangeFunction();
});
function stateChangeFunction() {
    var lowFilter1 = control.getState().lowValue;
    var highFilter1 = control.getState().highValue;
    var lowFilter2 = control2.getState().lowValue;
    var highFilter2 = control2.getState().highValue;

    customFilterChart.setView({
        'rows': customFilter(lowFilter1, highFilter1, lowFilter2, highFilter2)
    });
    customFilterChart.draw();
};
stateChangeFunction()
如下所示

google.visualization.events.addListener(control, 'statechange', function () {
    stateChangeFunction();
});
function stateChangeFunction() {
    var lowFilter1 = control.getState().lowValue;
    var highFilter1 = control.getState().highValue;
    var lowFilter2 = control2.getState().lowValue;
    var highFilter2 = control2.getState().highValue;

    customFilterChart.setView({
        'rows': customFilter(lowFilter1, highFilter1, lowFilter2, highFilter2)
    });
    customFilterChart.draw();
};
它只读取两个滑块的高值和低值,然后将我的customFilteredChart视图设置为该函数返回的行

function customFilter(low1, high1, low2, high2) {
    var rows = []
//Using googles own getFilteredRows
    rows = data.getFilteredRows([{
        column: 1,
        minValue: low1,
        maxValue: high1
    }]);
//Then doing the same with the other two values.
    rows = rows.concat(data.getFilteredRows([{
        column: 1,
        minValue: low2,
        maxValue: high2
    }]));
//Removing duplicate rows to avoid displaying them twice.
    var uniqueRows = rows.reduce(function(a,b){if(a.indexOf(b)<0)a.push(b);return a;},[]);

    return uniqueRows
}
功能自定义过滤器(低1、高1、低2、高2){
变量行=[]
//使用谷歌自己的GetFilterDrows
rows=data.getFilteredRows([{
专栏:1,
最小值:低1,
最大值:高1
}]);
//然后对其他两个值执行相同的操作。
rows=rows.concat(data.getFilteredRows([{
专栏:1,
最小值:低2,
最大值:高2
}]));
//删除重复行以避免显示两次。

var uniqueRows=rows.reduce(function(a,b){if(a.indexOf(b))我觉得有趣的是,当他们或图书馆不支持这些函数时,如何始终能够操作代码。但是,谢谢你,这正是我所寻找的,也要感谢Christian Landgren。