我想在轴上添加自定义比例,如下图所示

这个想法是,刻度总是比前一刻度大2倍.
我的理解是这是一个自定义的规模.我做了一些研究,找不到类似的东西.
所以我想我的问题实际上是两个问题:
这个尺度在数学世界中是"标准的"吗?
这有可能实现这个d3.js吗?
任何指向相关教程或实例(即jsFiddle)的链接也是受欢迎的.
编辑:我现在已经在mathematica.stackexchange.com上询问了一个相关的问题,以帮助我找到解决这个问题的方法,并在我尝试了一些事情后更新这篇文章.
我觉得这可能只是我误解了对数刻度的工作原理,但我似乎无法让 D3 对数刻度基工作。
在这个小提琴中,我尝试使用相同的 base10 刻度集创建三个刻度,base10 对数刻度、base4 对数刻度和 base2 对数刻度。根据我对对数刻度的外行理解,以 10 为底的对数刻度看起来是正确的——十的幂在轴上等距分布。但是,base4 和 base2 的比例是相同的——在我看来,标签应该在这两个比例上向右压缩。这是怎么回事?
繁琐的代码:
ticks = [1, 10, 100, 1000, 10000, 100000, 1000000, 10000000]
elems = { ten: 10, four: 4, two: 2 }
for selector, base of elems
dom = d3.select('.scale.' + selector)
scale = (new d3.scale.log()).base(base).domain([ 0.5, 10000000 ]).range([ 0, 500 ])
dom.selectAll('div')
.data(ticks)
.enter().append('div')
.text((x) -> x)
.style('left', (x) -> scale(x) + 'px')
Run Code Online (Sandbox Code Playgroud)