График скользящего/скользящего среднего значения в d3.js

Ищете способ построить скользящее/скользящее среднее значение в d3 без необходимости заранее манипулировать данными. Итак, я хочу сгладить линию, усредняя каждую точку данных с двумя после нее. Мой код такой

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));

Могу ли я указать movingAverageLine для расчета среднего значения следующих точек данных? Я не могу придумать способ получить к ним доступ в этой функции.

Я создал пример на jsfiddle.http://jsfiddle.net/tjjjohnson/XXFrg/2/#run

9
задан tjjjohnson 16 August 2012 в 04:38
поделиться