不要显示负号d3轴标签

时间:2013-11-14 19:55:10

标签: d3.js format label axis

我有一个比例,我不希望在数字之前出现负号 - 如何在d3格式化程序中完成?比例建立如下:

var formater = d3.format("0");

self.x = d3.scale.linear().domain([self.xmin, self.xmax]).range([0, self.settings.width])

    self.axis = d3.svg.axis()
        .scale(self.x)
        .orient("bottom")
        .tickFormat(formater);

    self.axisLabels = self.svg.append("g")
                    .attr("class", "axis")
                    .attr("id", "axis")
                    .call(self.axis)

我看到一个选项可以添加“+”符号但不会删除“ - ”符号https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format

此外,是否可以删除一个标签?我在标尺上标注从-5到5,并且不希望出现负号,我不想标记为0.谢谢。

1 个答案:

答案 0 :(得分:5)

您正在使用格式化程序,并且您无需依赖D3删除“ - ”符号,您可以自己动手:

var formatter = d3.format("0");

// ...

self.axis = d3.svg.axis()
    .scale(self.x)
    .orient("bottom")
    .tickFormat(function (d) { 
         if (d === 0) return ''; // No label for '0'
         else if (d < 0) d = -d; // No nagative labels
         return formatter(d);
    });