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

これにより、線が少し滑らかになります。

スムージングの強さを制御する方法はありますか?

補間関数の他の文字列値 (base、cardinal など) は、良好な平滑化を提供しますが、線の形状も変更します。

私が必要としているのは、「モノトーン」のようなものですが、より強いものです。角だけを滑らかにして丸くします。

ドキュメントには、カスタム補間関数を使用できることが示されていますが、その作成方法についてはほとんど言及されていません。

4

1 に答える 1

3

1 つのオプションは、カーディナル スプラインです。カーディナル スプラインには、.tension()0 と 1 の間の値をとるパラメータがあり、デフォルトは 0.7 です。このパラメーターをいじることで、あなたが望むものを達成できるかもしれません。

それが要件を満たさない場合、唯一のオプションは、カスタム インターポレーターを実装することです。リンク先のドキュメント ページには、線形補間の定義やカスタム ライン補間の例など、実装方法に関する詳細が実際に記載されています。

于 2014-02-04T21:28:24.273 に答える