2013-07-08 41 views
0

我正在使用D3JS,并且我想要x中的一个坐标轴以及这种值:125,250,500,1000 ...直到8000.因此,每次乘以2我的值。D3JS中的自定义轴功能

所以我尝试了量化尺度,但轴不支持它。

我该怎么做?我可以做一个自定义的数学函数,如y = mx + b(其中m = 2,我的情况和b = 0)并将其用于轴?

在这里你可以看到我code

Podelo 
+0

你想要一个这样做的实际比例还是只是轴标签? –

+0

一个比例更好,因为我在x轴上的点必须遵循相同的逻辑 – Podelo

+0

然后,你必须实现你自己的比例。 –

回答

1

linear scale是非常灵活,如果你肿块的范围和领域多个值,从而创建一个polylinear规模:

tickWidth = (ChartWidth - padding)/7 
xScale = d3.scale.linear() 
      .domain([0, 125, 250, 500, 1000, 2000, 4000, 8000]) 
      .range(d3.range(8).map(function(d){ return d*tickWidth; })); 

http://jsfiddle.net/h2juD/6/

+0

非常感谢!我知道有一个技巧,但我不能完全控制范围和其他的D3​​功能。 – Podelo