在D3中创建一个阶跃比例
Create a step scale in D3
我有一个基本的规模看起来像这样:
var yScale = d3.scale.linear()
.domain([0, totalCount])
.range([0, containerHeight]);
现在,当我把一些东西放进去,比如yScale(6)
,它可以返回一个浮点数,但我希望它返回一个代表我的网格中的行号的数字。因此,如果值在某个范围内,则返回1
,如果在另一个范围内,则返回2
,以此类推。我想我需要计算值是否在范围内并返回自定义值。
我该怎么做?
d3提供了离散范围值和连续域的量化尺度。
var yScale = d3.scale.quantize()
.domain([0, 50])
.range([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
在这种情况下,对于[0,5)的值,您将得到1,对于[5,10)的值,您将得到2,以此类推。
[0,5)表示0包含但5不包含,即4.9999将返回1而5将返回2
range函数有第三个参数,即step。希望对你有帮助。
d3.range([start, ]stop[, step])
d3.range(0, 1, 0.2) // [0, 0.2, 0.4, 0.6000000000000001, 0.8
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 使用D3.js和GeoJson在地图上的某些坐标上设置一个小图像
- d3.csv有很多数据,只画了一个月
- D3.js:将一个有响应的饼图放在其父分区的中心
- 在多行图表中,在每一行的末尾,我想要一个小圆圈和使用d3.js的端点值
- D3.js如何只创建一个绑定到多个数据项的数据集的元素
- 如何使用d3.layout.cloud.js创建一个包含单词及其权重的csv的单词云
- 为什么我会得到一个“;未捕获类型错误”;当我介绍D3.transition()时
- 如何用D3添加一个简单的圆弧
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- d3日历视图:如何将所有内容放在一个svg中,而不是放在几个svg中
- 如何使用 d3 过渡使圆形一个接一个地出现
- 在 D3 中追加堆积条形图和另一个条形图
- 如何在D3中添加一个强制拖动事件,并使节点停留在我离开它的地方
- 根据已经给定的频率创建一个d3.js直方图
- D3-使用一个SVG点击事件来影响另一个
- 是什么导致一个D3.js图表和同一页上的另一个发生冲突
- 我可以把一个d3布局放在另一个上面吗
- 如何计算一个D3对角线路径的中心
- D3工具提示,也是一个D3 viz