【发布时间】:2016-03-29 12:57:29
【问题描述】:
我正在尝试创建一个通用的函数来创建 crossfilter.js 维度和组。到目前为止,我以这种方式根据数据的键名(列名)创建了一个特定的(以“工作日”列为例):
DataArray= crossfilter(Data);
dimName = DataArray.dimension(function (d) { return d.Weekday; });
groupName= dinName.group().reduce(reduceAdd, reduceRemove, reduceInit);
显然,这很有效,但是我想创建一个可以创建维度的通用函数,而不管列的名称是什么。我曾想过这样做:
var x = Data[0];
var keyNames= d3.keys(x);
dimName = DataArray.dimension(function (d) { return d.keyNames[0]; });
...
这不起作用,因为 'd.keyNames[0]' 显然是错误的。 如何将 keyNames 传递给函数 'd. '??
希望我解释清楚。
【问题讨论】:
-
您要为每个键创建一个维度吗?如果不是,您想如何从输入数据中选择键?
-
是的,我想为每个键创建一个维度。问题是我正在使用 Flask 构建一个 Web 应用程序,因此,以前,用户从 html FORM 中选择 25 个之间的 5 个变量,然后一个 python 函数根据用户选择的不同选项准备数据。数据准备好后,会以 .json 格式发送到 html 文件。这就是问题所在,我事先不知道,已经选择的那5个变量。
标签: javascript d3.js crossfilter