D3.js Rangeroundbands使我的轴太宽

D3.js Rangeroundbands使我的轴太宽,d3.js,scale,D3.js,Scale,我希望我的轴和我的面积图一样宽。不过,我的坐标轴比图表略宽 见下文: 相反,我希望它们是这样的——端到端: 我的代码如下所示: var margin = {top: 30, right: 15, bottom: 30, left: 15}, width = 130 - margin.left - margin.right, height = 170 - margin.top - margin.bottom; var y = d3.scale.li

我希望我的轴和我的面积图一样宽。不过,我的坐标轴比图表略宽

见下文:

相反,我希望它们是这样的——端到端:

我的代码如下所示:

var margin = {top: 30, right: 15, bottom: 30, left: 15},
        width = 130 - margin.left - margin.right,
        height = 170 - margin.top - margin.bottom;

      var y = d3.scale.linear()
        .range([height, 0]);

      var x = d3.scale.ordinal()
          .rangeRoundBands([0, width],1);

      var xAxis = d3.svg.axis()
        .scale(x).tickSize(0,0)
        .tickValues([])
        .orient("bottom");

其他一切都来自这些值和x()刻度。

Hmm,您需要将域扩展到标签宽度的一半,超过最后一个记号。对于D3来说,这不是一件容易的事情——也许只是简单地选择两个极端的标签,并相应地移动它们?我最后只是将它们作为文本对象添加。另一种方法是制作两个轴,一个用于文本,一个用于线条。