我在d3中创建了一个负值的条形图。该图表显示了两支球队在一系列比赛中的得分差异,因此如果A队比B队赢得三分,则数据点为-3。如果B队获胜三分,则数据点为3。
图表本身很好,但我希望轴能够反映数据点的绝对值。我试过了:
var xAxis = d3.svg.axis()
.scale(Math.abs(x))
.orient("top");
但这似乎并没有成功。任何想法都受到欢迎。
谢谢, 乔恩
答案 0 :(得分:0)
此行为未记录,但可以通过这种方式将函数传递给tickFormat
:
tickFormat(Math.abs)
您甚至可以制作更复杂的格式,例如:
tickFormat(function (v) {
return Math.abs(v) + '%';
})
查看tickFormat
's source code,我无法找到任何有关此行为的证据。因此,它看起来并不像预期的那样,但无论如何它仍然有用。这只是一个猜测,但也许传递的函数在底层的某处被调用。
P.S。:OP已经回答了这个问题in a comment,但我在这里发帖是为了让其他人更容易找到它。