1
ここに私がこれまで持っていたもののjsbinがあります。d3.jsで正弦波が振幅の高さにならない
私の正弦波は1または-1のy値、すなわち振幅には達しません。
マイYSCALEはこのように定義されています
const yScaleAxis = d3.scale.linear()
.domain([-1, 1])
.range([radius, -radius]);
そして、私はこのような値を作成しています:
const xValues = [0, 1.57, 3.14, 4.71, 6.28]; // 0 to 2PI
const sineData = xValues.map((x) => {
console.log(Math.sin(x));
return {x: x, y: Math.sin(x)};
});
yの値は次のように記録されています。
0
0.9999996829318346
0.0015926529164868282
-0.999997146387718
-0.0031853017931379904
Iスケールを使用して値を設定します。
const sine = d3.svg.line()
.interpolate('basis')
.x((d) => {return xScaleAxis(d.x);})
.y((d) => {return yScaleAxis(d.y);});
circleGroup.append('path')
.datum(sineData)
.attr('class', 'sine-curve')
.attr('d', sine);
しかし、jsbinで見ることができるように、正弦波の振幅は1または-1に達していないため、わかりません。 monotone