4

我有一个比例,我不希望负号出现在数字之前 - 如何在 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。谢谢。

4

1 回答 1

7

您已经在使用格式化程序,并且不需要依赖 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);
    });
于 2013-11-14T20:08:54.340 回答