您需要将每个条的宽度的一半添加到线/点计算的x点.由于您已将每个条的宽度定义为x.rangeBand(),这意味着将x属性更改为:
var valueline = d3.svg.line()
.x(function(d) {
return x(d.property) + x.rangeBand() / 2;
})
.y(function(d) { return yCost(d.normalised_cost); })
.interpolate("step-after");
Run Code Online (Sandbox Code Playgroud)