Javascript d3js-柱形图-数据点对齐

Javascript d3js-柱形图-数据点对齐,javascript,graph,d3.js,Javascript,Graph,D3.js,这是我用d3.js制作的图表。我希望我的酒吧是围绕着蜱值-因为在中间的每一个酒吧(3个酒吧)应与月份名称一致。有什么方法可以优雅地做到这一点吗?如果您需要有关数据集或图表功能的更多信息,请务必告诉我 一些有用的代码 this.container.selectAll('g.container') .data(this.data) .enter().append('g') .attr('class', 'container') .attr('transform', fun


这是我用d3.js制作的图表。我希望我的酒吧是围绕着蜱值-因为在中间的每一个酒吧(3个酒吧)应与月份名称一致。有什么方法可以优雅地做到这一点吗?如果您需要有关数据集或图表功能的更多信息,请务必告诉我

一些有用的代码

this.container.selectAll('g.container')
    .data(this.data)
  .enter().append('g')
    .attr('class', 'container')
    .attr('transform', function(d, i){
        console.log(d.dimension, this)
        var x = self.margin.left + self.xScale(d.dimension.value);
        var y = self.margin.top;
        return 'translate('+ x + ',' + y +')'
});

this.bars = this.container.selectAll('g.container')
    .selectAll('rect.bar')
    .data(function(d){ return d; })
  .enter()
    .append('rect')
    .attr('class', 'bar')
    .attr('width', 3)
    .attr('height', function(d){
        console.log(d.y, d.key, this);
        return availableHeight - self.yScale(d.y);
    })
    .attr('y', function(d){ return self.yScale(d.y); })
    .attr('x', function(d, i){ return i * 5 });

您可以通过调整
g.container
transform
或附加矩形的
x
属性来实现这一点。我会调整变换,即更改

.attr('transform', function(d, i){
  console.log(d.dimension, this)
  return 'translate('+ 
          (self.margin.left + self.xScale(d.dimension.value)) + ',' 
          + self.margin.top +')'
});

包含一些额外的空间(维度值之间的差异的一半)。

如何计算这个差异?如果我能找到我的记号所在的值,我可以简单地使用它,你只需计算两个连续的
dimension.value
之间的差值。想必这是JSON中的内容?