在d3中创建绝对值的轴

时间:2015-03-13 02:02:41

标签: svg d3.js

我在d3中创建了一个负值的条形图。该图表显示了两支球队在一系列比赛中的得分差异,因此如果A队比B队赢得三分,则数据点为-3。如果B队获胜三分,则数据点为3。

图表本身很好,但我希望轴能够反映数据点的绝对值。我试过了:

var xAxis = d3.svg.axis()
    .scale(Math.abs(x))
    .orient("top");

但这似乎并没有成功。任何想法都受到欢迎。

谢谢, 乔恩

1 个答案:

答案 0 :(得分:0)

此行为未记录,但可以通过这种方式将函数传递给tickFormat

tickFormat(Math.abs)

您甚至可以制作更复杂的格式,例如:

tickFormat(function (v) {
    return Math.abs(v) + '%';
})

查看tickFormat's source code,我无法找到任何有关此行为的证据。因此,它看起来并不像预期的那样,但无论如何它仍然有用。这只是一个猜测,但也许传递的函数在底层的某处被调用。

P.S。:OP已经回答了这个问题in a comment,但我在这里发帖是为了让其他人更容易找到它。