【问题标题】:Custom the scale function in d3.js在 d3.js 中自定义缩放功能
【发布时间】:2012-11-30 09:04:00
【问题描述】:

我想将1-1000映射到1-190,我的map函数是:

f(x) = { x                     if 1<=x and x<=100,
         100 + (x-100)/10      if 100 < x <= 1000           }

我该怎么办?

【问题讨论】:

  • 为什么要使用映射而不是返回对应值的函数?

标签: javascript d3.js


【解决方案1】:

最后通过追踪源码得到了解决方案:

d3.scale.linear().domain([1, 100, 1000]).range([1, 100,190]) //poly-linear

【讨论】:

  • 实际上我使用的是 rickshaw.js,它是一个用于创建时间序列图的 javascript 工具包,基于 d3.js。而且它只支持逐线性缩放,所以我需要阅读d3.js的文档并修改它。
【解决方案2】:

我不熟悉 3d.js,但这就是我在普通 JS 中的做法

function toNewScale( x ) {

    return Math.round( x / 1000 * 190 );
}

如果这是你要问的。

【讨论】:

  • 恐怕你的地图功能和我的不一样。
  • 我知道,我不知道如何在 3d.js 中进行映射,而且我无法轻松找到有关映射的信息。我想我建议使用函数而不是地图。
  • 感谢您的建议,但我需要传递一个 d3.scale 函数进行缩放。谢谢:)
猜你喜欢
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
  • 2017-06-14
  • 2021-01-26
  • 2011-08-13
  • 1970-01-01
  • 2016-03-17
相关资源
最近更新 更多