我尝试在我的angular应用程序中渲染this example。
同样的数据,我复制函数,等等。
我可以看到带有节点的圆,但我在绘制路径/链接时遇到问题。
我的问题在于这个函数:
line = d3.lineRadial()
.curve(d3.curveBundle.beta(0.85))
.radius(d => d.y)
.angle(d => d.x)
我在哪里知道d
是什么?
我的IDE说,它是一个2个数字的向量,但当我记录数据时,它是一个包含x和y值的节点。
但是如果我尝试访问它们并写入d.x
,我会得到错误TS2339: Property 'x' does not exist on type '[number, number]'.
这是我的函数现在的样子:
let line = d3.lineRadial()
.curve(d3.curveBundle.beta(0.85))
.radius((d,i) => {
console.log("d");
console.log(i);
console.log(d);
return d[0];
})
.angle(d => d[1]);
这是日志输出:
我有点困惑,日志怎么能告诉我运行时的不同...
1条答案
按热度按时间m1m5dgzv1#
我只是检查了一下d3文档(也许有更多经验的人可以帮助你更多),但我们将从一些简单的开始:
在SVG中创建一个带有线的点的路径
当你有一个d3.lineRadial时,你用一个数组“Angular 和半径”来“馈送”值
但是计算半径和Angular 有些“难”。因此,我们可以创建一个函数(1)
并且我们可以使用这个函数来创建一个SVG的“路径”
如果你想“四舍五入”的“螺旋”使用
.curve(d3.curveBundle.beta(0.85))
好了,你可以使用所有在一个独特的instrucction(1)查看如何工作的功能,你使用,例如.
.angle((d,i)=>a function of "i"
.然后,当你用一个属性为length
的对象执行函数时,i从0到length-1,并返回[0,PI/4,2 *PI/4,3 *PI/4,...]。但d
什么都不是