nvd3 没有正确计算最大 y 值

nvd3 does not calculate maximum y value correctly

我在根据数据计算最大 y 值时遇到问题

我用

var maxY = d3.max(d3.merge(data.map(function(d){return d.values})), function(d) {return d.rank});

然后

.yDomain([maxY,1])

设置域。

但是正如您在我的 fiddle (http://jsfiddle.net/Marei/v4ca3pz6/) 中看到的那样,它不起作用 - 虽然我数据中的最大 y 为“12”,但图表显示的最大 Y 为“90” ".

这是我第一次使用 nvd3,所以也许这里有人可以帮我看看我做错了什么? 非常感谢!

更新

感谢 adilapapaya,我通过添加缺失的“+”

为我们的测试弄明白了 fiddle

return +d.rank; 在您的 maxY 计算中。否则,d3.max 将假设输入 String 来计算最大值。

您需要将排名输出为 Number。尝试换行 d.rank。例如:parseInt(return d.rank)