Javascript d3轴刻度未正确对齐

Javascript d3轴刻度未正确对齐,javascript,charts,d3.js,scale,axis,Javascript,Charts,D3.js,Scale,Axis,我无法使%总轴正确对齐。这是相关代码 var totalPercentageAxisScale = d3.scale.ordinal() .domain(dataTop.percent_of_total) .rangeBands([0, width]); var totalPercentageAxis = d3.svg.axis() .scale(totalPercentageAxisScale)

我无法使%总轴正确对齐。这是相关代码

var totalPercentageAxisScale = d3.scale.ordinal()
            .domain(dataTop.percent_of_total)
            .rangeBands([0, width]);

        var totalPercentageAxis = d3.svg.axis()
            .scale(totalPercentageAxisScale)
            .tickValues(dataTop.percent_of_total)
            .tickPadding([15]);

        var botTotPercAxisScale = d3.scale.ordinal()
            .domain(dataBottom.percent_of_total)
            .rangeBands([0, width]);

        var botTotPercAxis = d3.svg.axis()
            .scale(botTotPercAxisScale)
            .tickValues(dataBottom.percent_of_total);

        chartWrapper.select(".chart-two").append("g").attr("transform", "translate(0, " + (heightBottom + 12) + ")").attr("class", "axis").call(botTotPercAxis);
        chartWrapper.select(".chart-two").append("g").attr("transform", "translate(0, " + (heightBottom + 24) + ")").attr("class", "axis").call(botPercChangeAxis);
log(JSON.stringify(dataTop.percent_of_total),JSON.stringify(dataBottom.percent_of_total)); 返回。。。
[“-0.04%,“0.18%,“0.41%,“0.12%,“0.1%,“0.01%,“0.01%,”[“-0.1%,“0.16%,“0.38%,“0.16%,“0.06%,“0.05%,“0.01%”]

我相信d3正在删除重复的值。在第一个数据集中,有两个值为“0.01%”,因此它删除了一个值。在第二种情况下,它会删除其中一个“0.16%”。我很确定这就是诊断,但我仍然不知道治疗方法。你说的对,它正在消除重复。查看是否可以将标尺的域设置为渲染条形图时绑定到的数据数组,然后使用axis的
.tickFormat(函数(d){return…})
方法从
d
中提取并返回所需的勾号值。(注意:我没有尝试过这种方法,可能还有更惯用的方法)我喜欢这个想法,但这就是我要将数据绑定到的数组……我觉得您根本不想为此使用比例,而是手动添加值。