d3线平滑(强于单调)

时间:2014-02-04 21:16:53

标签: javascript svg d3.js linear-interpolation

var valueline = d3.svg.line()
.interpolate("monotone") 
.x(function(d) { return x(d.t); })
.y(function(d) { return y(d.r); });

这会使线条更平滑。

有没有办法控制平滑的强度?

插值函数的其他字符串值(如:basis,cardinal ...)可以提供良好的平滑效果,但也可以改变直线的形状。

我需要的是“单调”但更强大的东西。只能使角落光滑圆润。

documentation表明我可以使用自定义插值函数,但很少提及如何制作它。

1 个答案:

答案 0 :(得分:3)

一个选项是基数样条。基数样条曲线具有.tension()参数,该参数的值介于0和1之间,默认值为0.7。通过使用此参数,您可以实现您想要的效果。

如果这不符合您的要求,您唯一的选择是实现自定义插补器。您链接到的文档页面实际上已经详细介绍了如何实现,包括线性插值的定义和自定义行插值的example