Javascript 使用泛型函数绘制线d3js
我正在使用d3js绘制多行图表 我画线的功能如下Javascript 使用泛型函数绘制线d3js,javascript,d3.js,Javascript,D3.js,我正在使用d3js绘制多行图表 我画线的功能如下 meanLine = d3.svg.line() .interpolate('linear') .x(function (d) { return xScale(d.date); }) .y(function (d) { return yScale(d.mean);
meanLine = d3.svg.line()
.interpolate('linear')
.x(function (d) {
return xScale(d.date);
})
.y(function (d) {
return yScale(d.mean);
});
//data is declared at top
group.append('svg:path')
.attr({
d: meanLine(data),
"stroke": "rgba(" + color + ", 0.8)",
});
这里日期和平均值是硬编码的。我想要一个通用函数,我可以传递用于绘制直线的值
我想要像这样的东西
lineFunc = d3.svg.line()
.interpolate('linear')
.x(function (d, xval) {
return xScale(d[xval]);
})
.y(function (d, yval) {
return yScale(d[yval]);
});
//data is declared at top
group.append('svg:path')
.attr({
d: lineFunc(data, xval, yval),
"stroke": "rgba(" + color + ", 0.8)",
});
你可以这样做。。。在这里
myLineFun
包含您的d3行函数
:
//make a function which houses the line function
var myLineFun = function(data, xval, yval){
//the line function
var lineFunc = d3.svg.line()
.interpolate('linear')
.x(function (d) {
return xScale(d[xval]);//xval passed in the argument
})
.y(function (d) {
return yScale(d[yval]);//yval passed in the argument
});
return lineFunc(data);//this will return the d attribute
}
然后称之为:
group.append('svg:path')
.attr({
d: myLineFun(data, xval, yval),
"stroke": "rgba(" + color + ", 0.8)",
});
希望这有帮助