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

这会导致线条更平滑一些。

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

插值函数的其他字符串值(例如:基础、基数...)可以提供良好的平滑度,但也会改变线的形状。

我需要的是类似于“单调”但更强大的东西。只使边角光滑圆润。

文档显示我可以使用自定义插值函数,但很少提及如何制作它。

4

1 回答 1

3

一种选择是基数样条。基数样条的.tension()参数取值介于 0 和 1 之间,默认值为 0.7。通过玩弄这个参数,您可能能够实现您想要的。

如果这不符合您的要求,您唯一的选择是实现自定义插值器。您链接到的文档页面实际上有一些关于如何实现的详细信息,包括线性插值的定义和自定义线插值的示例

于 2014-02-04T21:28:24.273 回答