Javascript 在回调函数之外调用d3函数

Javascript 在回调函数之外调用d3函数,javascript,d3.js,Javascript,D3.js,我正在尝试将一个带有单独csv文件的d3示例转换为使用变量的版本 所以基本上,它只是在取代 d3.csv(“myfile.csv”,函数(错误,数据){}) 到 data=d3.csvParse(myVarThatContainCsv) 这是第一步,但不是其余步骤: 如果我这么做的话 var csv = "id,val\none,2000\ntwo,3000\nthree,4000"; data = d3.csvParse(csv); var root = stratify(data)

我正在尝试将一个带有单独csv文件的d3示例转换为使用变量的版本

所以基本上,它只是在取代
d3.csv(“myfile.csv”,函数(错误,数据){})


data=d3.csvParse(myVarThatContainCsv)

这是第一步,但不是其余步骤:

如果我这么做的话

var csv = "id,val\none,2000\ntwo,3000\nthree,4000";
data = d3.csvParse(csv);

var root = stratify(data)
      .sum(function(d) { console.log(d);return d.taille; })
      .sort(function(a, b) { return b.taille - a.taille; });
我得到了错误

分层不是一种功能

所以我试过了

var csv = "id,val\none,2000\ntwo,3000\nthree,4000";
data = d3.csvParse(csv);

var root = d3.stratify(data)
      .sum(function(d) { console.log(d);return d.taille; })
      .sort(function(a, b) { return b.taille - a.taille; });
我得到了错误

d3.分层(数据)。总和不是一个函数

以下是我的bl.ocks示例:

我想我错过了一个非常简单的步骤,但我想不出来


非常感谢

这是
d3.stratify()(数据)
,但请看一看:您的数据需要有一个根才能进行分层。您可以使用parentId提供一个。希望这有帮助,祝你好运!查看Mike Bostock的原始块,您会注意到您正在处理的代码上方有一个
var stratify=d3.stratify()
赋值。这将构造一个新的分层运算符,允许您将其作为函数调用,如
stratify(data)
。因此,您需要包含该语句。您完全正确。我确实在代码中保留了这一行示例,但在调用stratify之后,我将其移动到了一个函数。我真为这个愚蠢的错误感到羞耻!
var csv = "id,val\none,2000\ntwo,3000\nthree,4000";
data = d3.csvParse(csv);

var root = d3.stratify(data)
      .sum(function(d) { console.log(d);return d.taille; })
      .sort(function(a, b) { return b.taille - a.taille; });