Charts Google可视化:从过滤表创建数据视图
是否有一种“内置”方法可以仅使用可见行从仪表板表创建数据视图?在编写一个不必要的冗长备选方案之前,我想知道 编辑: 我在参考文档中遗漏了这一点,但这并不能完全解决问题,因为您仍然需要做一些小动作来获取仪表板上活动过滤器的状态,并将它们传递给getFilteredRows()方法 您可以使用getFilteredRows()方法,该方法“返回与所有给定筛选器匹配的行的行索引。索引按升序返回。此方法的输出可用作DataView.setRows()的输入。”Charts Google可视化:从过滤表创建数据视图,charts,google-visualization,Charts,Google Visualization,是否有一种“内置”方法可以仅使用可见行从仪表板表创建数据视图?在编写一个不必要的冗长备选方案之前,我想知道 编辑: 我在参考文档中遗漏了这一点,但这并不能完全解决问题,因为您仍然需要做一些小动作来获取仪表板上活动过滤器的状态,并将它们传递给getFilteredRows()方法 您可以使用getFilteredRows()方法,该方法“返回与所有给定筛选器匹配的行的行索引。索引按升序返回。此方法的输出可用作DataView.setRows()的输入。” 使用仪表板时需要包装表格的ChartWra
使用仪表板时需要包装表格的ChartWrapper对象有一个“视图”参数,可用于定义要用于该图表的DataView:
var table = new google.visualization.ChartWrapper({
chartType: 'Table',
containerId: 'myTableDiv',
options: {
// table options
},
view: {
columns: [/* columns used for the view */]
}
});
为了让任何可能觉得这很有用的人受益,以下是我解决问题的方法: 首先,从仪表板创建控件状态数组
control_states = [ctrl1.getState(),ctrl2.getState(),ctrl3.getState()];
接下来,为每个控件创建所有选择的数组
var filteredrows = [ ];
var cnt = 0;
for (var i = 0; i < control_states.length; i++) {
var picker_state = control_states[i]
for (var j = 0; j < picker_state.selectedValues.length; j++) {
filteredrows[cnt] = [ ];
filteredrows[cnt]["column"] = i;
filteredrows[cnt]["value"] = picker_state.selectedValues[j];
cnt += 1;
};
};
你可以尝试寻找和使用第三方插件,你不必只依赖内置的东西。@Raindrop有什么建议吗?对不起,我不知道。我只是个初学者。就我个人而言,我最近从Google Visualization转到了Flot。没问题。无论如何谢谢你!
var filterdata = new google.visualization.DataView(data)
filterdata.setRows(
filterdata.getFilteredRows(filteredrows)
);