d3“神奇的“ ticks (吐槽)

通过上面的一系列弯路,你或许已经隐隐察觉,ticks根本不是用来设定分段数量的。真正的分段,是靠每一段的单位来确定的,比如说定义域为[0, 40]想分5段,那么每一段长度应该为8,但是8根本不在2,5,10这个考虑范围内,同样的道理,[0, 700]想分3段也分不出来。

真正的思考逻辑是,用1,2,5及其10倍数作为除数去计算。比如[0, 600],用1,2,5及其10倍数去除,而不要用3,6,9之类的数去除。600/50=12,所以ticks填写12是可行的,600/3=200,所以ticks填写200是不行的。

ticks的值填写什么,根本不是段数决定的,而是除数决定的,先在脑海中想一下除数是否为1,2,5及其10倍数,(不是的话,放心,得不到你想要的效果,)想一下除出来的结果,再填写这个结果。

这里的定义域全部都是0开头的,实际上不一定从0开始,比如[300, 600],这个时候被除数应该用300。

如果你一不小心,填写了未经脑海计算的值,会得到什么结果呢?d3会尽可能处理到与你传入的值最接近的结果,但是有的时候就会变成上面那图的最后的效果,会让人摸不着头脑。

 

https://segmentfault.com/a/1190000008750211#articleHeader3

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值