如何使刻度四舍五入到最接近的 # 的倍数
How to make the scale to round to the nearest multiple of #?
x.scale = d3.time.scale().domain(x.extent).range([0, dimensions.graph.width]);
此代码使用x.extent
( [Wed Aug 01 2012 00:00:00 GMT+0300 (EEST), Tue Aug 07 2012 00:00:00 GMT+0300 (EEST)]
( 和图形宽度 (1000( 来生成x
值刻度。但是,我需要将此值四舍五入到最接近的 25 (Math.round(x/25)*25
的倍数(。
通过这样做,我想实现现在定义为的精确宽度刻度
:x.axis = d3.svg.axis()
.ticks(d3.time.days, 1)
.tickSize(10, 5, 0)
.scale(x.scale);
如何将x.scale
扩展到四舍五入到最接近的 25 的倍数?
正确答案是 interpolateRound
,来自文档
返回两个数字 a 和 b 之间的插值器;插值器类似于
interpolateNumber
,不同之处在于它将结果值舍入到最接近的整数。
var xScale = d3.scaleLinear()
.domain([0, 100])
.range([0, width])
.interpolate(d3.interpolateRound); // <-- round interpolation
你在寻找不错的功能吗?
x.scale = d3.time.scale().domain(x.extent)
.range([0, dimensions.graph.width]).nice();
也许我误解了,但是您不能在应用缩放函数后按照您的建议转换结果吗? 即:
function roundScale(origVal) { return Math.round(x.scale(origVal)/25) * 25;}
然后使用该值设置属性:
.attr("x", function(d) { return roundScale(d.value); }
相关文章:
- 获取最接近的数组数
- 从同级字符串中指定最接近的元素类
- 当使用'最接近的':jQuery
- 如何使刻度四舍五入到最接近的 # 的倍数
- 如何根据数值通过数据属性进行搜索并获得最接近的值
- 通过搜索最接近的类来更改类
- 获取TR之外最接近的隐藏值
- JQuery获取最接近的元素并筛选子元素
- 获取最接近所选选项的最快方式
- j查询树遍历从子级到最接近过滤的父级
- JavaScript:如何在最接近值的关联数组中查找键
- jquery onclick 切换最接近的 UL
- 在 javascript 数组中搜索最接近的下一个值
- 如何确定乘以后将使您最接近目标数字的数字
- 单击按钮,如何获取与类最接近的td值
- javascript代码查找最接近零的tescase
- 未获得最接近0的结果
- jQuery此语法或最接近的语法
- 以最接近的图标为目标,将其更改为另一个图标
- jQuery:在更改时获取最接近的元素