Wykres kroczący / średnia ruchoma w d3.js
Szukanie sposobu kreślenia średniej kroczącej / ruchomej w d3 bez konieczności wcześniejszego manipulowania danymi. Chcę więc wygładzić linię, uśredniając każdy punkt danych za dwa po nim. Mój kod jest taki
var data = [3, 66, 2, 76, 5, 20, 1, 3, 8, 90, 2, 5, 70];
var w = 20,
h = 80;
var x = d3.scale.linear()
.domain([0, 1])
.range([0, w]);
var y = d3.scale.linear()
.domain([0, 100])
.rangeRound([h, 0]);
var chart = d3.select("body").append("svg")
.attr("class", "chart")
.attr("width", w * data.length -1)
.attr("height", h);
var line = d3.svg.line()
.x(function(d,i) { return x(i); })
.y(function(d) { return y(d); })
var movingAverageLine = d3.svg.line()
.x(function(d,i) { return x(i); })
.y(function(d) { return y(d); })
chart.append("svg:path").attr("d", line(data));
chart.append("svg:path").attr("d", movingAverageLine(data));
Czy mogę określić movingAverageLine, aby obliczyć średnią z następujących punktów danych? Nie mogę wymyślić sposobu, aby uzyskać do nich dostęp w tej funkcji.
Ustawiłem przykład na jsfiddle.http://jsfiddle.net/tjjjohnson/XXFrg/2/#run