在D3 interpolate 是v3中的api, v4 v5 中,线生成器采用曲线来定义插值:
虽然将线定义为二维[x,y]点的序列,并通过轮廓线和基线类似地定义区域,但是仍然存在将这种离散表示转换为连续形状的任务:即,如何在要点。daccess-ods.un.org daccess-ods.un.org为此目的提供了各种曲线,通常不会直接构建或使用它们,而是传递给线 .curve和area .curve
错误代码:
var line = d3.line()
.x(function (d, i) {
if (indexData) {
return xScale(xDomain[indexData[i]]);
}else {
return xScale(xDomain[i]);
}
})
.y(function (d, i) {
return yScale(d);
})
.interpolate("cardinal")
正确的应该是:
var line = d3.line()
.x(function (d, i) {
if (indexData) {
return xScale(xDomain[indexData[i]]);
}else {
return xScale(xDomain[i]);
}
})
.y(function (d, i) {
return yScale(d);
})
.curve(d3.curveBasis);