d3.js nice()ticks背后的逻辑是什么

时间:2016-01-21 17:46:24

标签: javascript python d3.js charts pycairo

我在d3.js中生成了一些图表。我使用下面的代码来计算放在y轴上的值,它就像一个魅力。

var s = d3.scale.linear().domain([minValue, maxValue]);
var ticks = s.nice().ticks(numberOfPoints);

但是我现在必须使用pycairo编写python代码,它会在服务器端生成d3.js图表​​的克隆。

我的问题是,是否有人知道上面代码中使用的逻辑,或者可以给出类似结果的东西,以便我可以在python中复制它以获得在y轴中使用的漂亮值?

1 个答案:

答案 0 :(得分:7)

D3是开源的,所以你可以look up the implementation。它基本上归结为四舍五入极值:

domain[i0] = nice.floor(x0);
domain[i1] = nice.ceil(x1);