我是一名d3初學者,我很遺憾承認我在構造兩個數組的交叉乘積時遇到了問題。我實際上正在與立體派合作,做一些非常簡單的事情:爲每種類型製作一些聚合物。立體主義,d3數據加入
我嘗試:
var aggs = [
{title: 'mean', metric: function(d) { return cube.metric("sum(" + d + (value))").divide(cube.metric("sum(" + d + ")")); }},
{title: 'count', metric: function(d) { return cube.metric("sum(" + d + ")").divide(step/1e3); }}
]
d3.json(origin + "/1.0/types", function(types) {
d3.select("body").insert("div", ".bottom")
.attr("class", "group")
.selectAll(".typegrp")
.data(types)
.enter()
.append("div")
.attr("class", "typegrp")
.selectAll("div")
.data(aggs)
.enter()
.append("div")
.attr("class","horizon")
.call(context.horizon()
.title(function(d) { return d.title; })
.metric(function(d) { return d.metric(FOOOO); })
);
});
我不明白的部分是 「FOOOO」 的一部分。從'內部'上下文('aggs'中的行),我如何訪問'外部'上下文('類型'中的行)?
在此先感謝。
編輯:這裏是一個完整的工作示例,如下面的尼克建議的。
var aggs = [
{title: 'mean', metric: function(d) { return cube.metric("sum(" + d + "(value))").divide(cube.metric("sum(" + d + ")")); }},
{title: 'sum', metric: function(d) { return cube.metric("sum(" + d + "(value))"); }},
{title: 'count', metric: function(d) { return cube.metric("sum(" + d + ")"); }},
{title: 'max', metric: function(d) { return cube.metric("max(" + d + "(value))"); }},
{title: 'min', metric: function(d) { return cube.metric("min(" + d + "(value))"); }}
]
d3.json(origin + "/1.0/types", function(types) {
d3.select("body")
.insert("div", ".bottom")
.attr("class", "group")
.selectAll(".typegrp")
.data(types)
.enter()
.append("div")
.attr("class", "typegrp")
.each(function(type) {
d3.select(this)
.selectAll("div.horizon")
.data(aggs)
.enter().append("div")
.attr("class","horizon")
.each(function(agg) {
d3.select(this)
.call(context.horizon()
.title(agg.title + " " + type)
.metric(agg.metric(type))
);
});
});
});
「我不明白的部分是」FOOOO「部分。」 - 這是一個非常棒的引用:) – nrabinowitz