2016-09-20 2 views
3

これをどのように記述するのかは分かりません。画像は基本的にそれを説明しています:cardinalD3補間された線のカーブがジャンクであり、それ自体が倍増します

濃い色の点は曲線上の点です。線が倍増して重なり合っているのが分かります。私はちょうどそれに設定しています:

var lineGenerator = d3.svg.line() 
    .x(function(d) { 
     return xScale(d.date_spaced); 
    }) 
    .y(function(d) { 
     return yScale(d.score); 
    }) 
    .interpolate('cardinal'); 

そして、各点は一度プロットされています。私は間違って何をしていますか?

モノトーンで:

monotone

と直線: enter image description here

+0

私は同じ問題を抱えています...私はこれを解決するためのヒントを期待しています。 –

答えて

1

緊張を高めるようにしてください:

また
var lineGenerator = d3.svg.line() 
    .x(function(d) { 
     return xScale(d.date_spaced); 
    }) 
    .y(function(d) { 
     return yScale(d.score); 
    }) 
    .interpolate('cardinal').tension(0.95); 

、他の補間(および張力値を試してみたが、あなたの目的に合ったものを見つけるまで、「バンドル」と「枢機卿」のためだけに)。

+0

私は緊張を高めようとしましたが、問題を最小限に抑えただけでそれを取り除くことはできませんでした。私が問題を取り除きたいのであれば、補間を完全に取り除き、直線をとる必要があります。 – morgoe

+0

「束」を強くしてみましたか?また、他の補間(単調、基本...)を試しましたか? –

+0

点と交差する線が必要なので、バンドルとベーシスは良くありません。モノトーンは同じ問題を抱えています(OPにイメージを追加しました) – morgoe

0

私は、カーディナルカーブ補間を使用して同じ問題を抱えていました。代わりにMonotoneXに設定すると、私が見たいと思ったものが私に与えられました。

var lineGenerator = d3.svg.line() 
    // ... 
    .interpolate('cardinal'); 

cardinal

var lineGenerator = d3.svg.line() 
    // ... 
    .interpolate('monotoneX'); 

monotoneX

あなたはD3 hereで補間の種類についてのすべてを読むことができます。 (注意深く、数学理論がたくさん...)

関連する問題