Google visualization 使用带有两个表的google图表的仪表板
我正在尝试在我的应用程序中创建一个带有柱状图和一些类别过滤器的仪表板,我有如下数据:Google visualization 使用带有两个表的google图表的仪表板,google-visualization,Google Visualization,我正在尝试在我的应用程序中创建一个带有柱状图和一些类别过滤器的仪表板,我有如下数据: ['First name', 'City', 'Number of children'], ['Michael' , 'London', 2], ['Elisa', 'Paris', 3], ['Robert', 'Moskov', 3], ['John','LA', 1], ['Jessica', 'Kyiv', 3], ['Aaron', 'New York', 2], ['Margareth','Toky
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
但我必须看到的不是这些数据,而是一张有着相同数量孩子的总人数的表格:
[‘1个孩子’、‘2个孩子’、‘3个孩子’]
[1,2,4]
所以,当我对第一个表应用一些过滤器时,第二个表中的数据必须自动重新计算。我可以把这些表和控件绑定在一起吗?或者我必须为每个过滤器放置一些处理程序并手动重新计算数据?我假设给定您的数据:
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
您希望按第二列(子列数)分组以获得此结果:
[1, 1],
[2, 2],
[3, 4]
您可以使用数据表的聚合功能轻松地做到这一点
以下是示例代码:
function drawJoin() {
var dt = google.visualization.arrayToDataTable([
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
]);
// Group dt by column 2, and count number of entries for each.
var grouped_dt = google.visualization.data.group(
dt, [2],
[{'column': 0, 'aggregation': google.visualization.data.count, 'type': 'number'}]);
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(dt, null);
var grouped_table = new google.visualization.Table(document.getElementById('grouped_table'));
grouped_table.draw(grouped_dt, null);
}
请随意试用(只需复制粘贴上面的代码即可)
您可以按原样对其进行图形化,也可以使用javascript函数对其进行转换,以转录数据表中的行/列
因此,您应该使用原始数据表上的控件进行筛选,然后创建分组函数,并在图表中绘制分组表
如果希望标签读取“1 child”而不仅仅是数字1,则需要使用创建函数,因为组的输出将是数字。您可以将其与上面的转置函数混合使用,因为您已经在对数据表进行操作。我假设给定您的数据:
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
您希望按第二列(子列数)分组以获得此结果:
[1, 1],
[2, 2],
[3, 4]
您可以使用数据表的聚合功能轻松地做到这一点
以下是示例代码:
function drawJoin() {
var dt = google.visualization.arrayToDataTable([
['First name', 'City', 'Number of children'],
['Michael' , 'London', 2],
['Elisa', 'Paris', 3],
['Robert', 'Moskov', 3],
['John','LA', 1],
['Jessica', 'Kyiv', 3],
['Aaron', 'New York', 2],
['Margareth','Tokyo', 3 ]
]);
// Group dt by column 2, and count number of entries for each.
var grouped_dt = google.visualization.data.group(
dt, [2],
[{'column': 0, 'aggregation': google.visualization.data.count, 'type': 'number'}]);
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(dt, null);
var grouped_table = new google.visualization.Table(document.getElementById('grouped_table'));
grouped_table.draw(grouped_dt, null);
}
请随意试用(只需复制粘贴上面的代码即可)
您可以按原样对其进行图形化,也可以使用javascript函数对其进行转换,以转录数据表中的行/列
因此,您应该使用原始数据表上的控件进行筛选,然后创建分组函数,并在图表中绘制分组表
如果希望标签读取“1 child”而不仅仅是数字1,则需要使用创建函数,因为组的输出将是数字。您可以将其与上面的转置函数混合使用,因为您已经在处理数据表。假设我有相同的数据,将它们分组,并基于分组数据构建柱状图。现在我想添加一些过滤器。我可以很容易地为我在分组数据中使用的列添加任何筛选器,但是当我为另一列添加一些筛选器时,我得到了错误“无效列标签”。例如,如果我添加: var categoryPicker=new google.visualization.ControlWrapper({ “controlType”:“CategoryFilter”, “containerId”:“control2”, “选项”:{ “filterColumnLabel”:“性能”, “用户界面”:{ “标签固定”:“垂直”, “allowTyping”:false, “allowMultiple”:true } } });
一切都会很好,但我的目标是为“City”和“First name”列添加过滤器,更改它们的值应该会对分组数据的柱状图产生影响。如果可以的话 假设我有相同的数据,将它们分组,并基于分组数据构建柱状图。现在我想添加一些过滤器。我可以很容易地为我在分组数据中使用的列添加任何筛选器,但是当我为另一列添加一些筛选器时,我得到了错误“无效列标签”。例如,如果我添加: var categoryPicker=new google.visualization.ControlWrapper({ “controlType”:“CategoryFilter”, “containerId”:“control2”, “选项”:{ “filterColumnLabel”:“性能”, “用户界面”:{ “标签固定”:“垂直”, “allowTyping”:false, “allowMultiple”:true } } });
一切都会很好,但我的目标是为“City”和“First name”列添加过滤器,更改它们的值应该会对分组数据的柱状图产生影响。如果可以的话 非常感谢您的回答,我不知道我怎么会错过数据处理部分,因为我在那个网站上花了一些时间玩图表……对不起,我还有一个问题,您能帮我吗?因为这是一个很大的评论,我不想单独问,我会问它作为我的第一个问题的答复,见下面我的消息谢谢你的回答,我不知道我怎么会错过数据处理部分,因为我花了一些时间在那个网站上玩图表…对不起,但我还有一个问题,你能帮我吗?因为这是一个大的评论,我不想单独问它,我会问它作为我的第一个问题的答复,见我的消息下面