未捕获类型错误: 无法读取 D3 中未定义的属性'curve'.js



我试图将D3 V4代码的块转换为V3。这是给我麻烦的代码块。

//var spiral = d3.radialLine()
var spiral = d3.svg.line.radial() 
  //.curve(d3.curveCardinal)
  .curve(d3.line.curve())
  //.curve(d3.curve.linear) 
  .angle(theta)
  .radius(radius);

我评论的第一行引用了radialLine,我能够解决,但是,当尝试将d3.curveCardinal转换为d3.line.curve()时,我会收到以下错误:

unturew typeerror:无法读取未定义的属性

的属性'曲线

我尝试了d3.line.curve()的一些衍生物,但无济于事。有谁知道我能成功翻译这本书的方式?

引用changelog:

line .intpaly和 .intpaly方法已被 line .curve和 afore 取代。曲线。曲线是使用曲线接口而不是作为返回SVG路径数据字符串

的函数实现的。

对于您的向后港口,这意味着要替换

.curve(d3.curveCardinal)

.interpolate("cardinal")

整个语句因此变为:

var spiral = d3.svg.line.radial() 
  .interpolate("cardinal")
  .angle(theta)
  .radius(radius);

V3 API文档具有有关d3.svg.line.radial()及其插值模式的正确用法的所有详细信息。

最新更新