d3.js d3.scale.ordinal() --详解 rangeBands

来源:互联网 发布:phpcms数据库配置文件 编辑:程序博客网 时间:2024/05/21 18:38

d3.scale.ordinal() –详解 rangeBands

@(d3_v3)[scale, ordinal, 参数说明]

取自API文档的解释图

Alt text
可以看出range内包括Step单元N个(取决于domain数组个数)、OuterPading单元两个
ordinal.rangeBands(interval[, padding[, outerPadding]])
为了区分参数和各单元。参数由首字母替代;
简单的换算一下

//range与rangeBand 、padding和outerPadding的关系式: range = N* rangeBand + (N-1)*padding + 2 * outerPadding;      //==>range = N * (rangeBand + padding) - padding * 2 outerPadding//outerPadding和step的关系式:outerPadding = step * o//Padding和step的关系式:Padding = step * p//rangeBand和step的关系式:rangeBand = step * (1 - p)//换算得倒range = N *(step * (1 -p) + step * p) - step * p + 2 * step * o//==> range = N * step - step * p + 2 * step * o//==>step = range / (n - p + 2 * o)//而 step 到底是什么? 得到step 换算得到 padding 和 outerPadding而已

有什么用呢

算完之后其实我是懵逼状态;
有什么用呢到底;
想想应用场景。一般都是想调整outerPadding和padding使chart美观些而已;

  • 而得出的step = range / (n - p + 2*o)可以推导出

    p = 2 * o 可以很便捷的算出step 从而得出rangeBand;(鸡肋。有API了)

  • 系数p、o相等可知间距与外间距等宽

  • p = .5 可知内间距与rangeband相等

  • p 越大 rangeband越小 这个很明显;

  • o越大step越小。从而rangeband越小;

  • 然而chart的美观因range 的范围与domain数组的个数 而不同;

没有什么必然好看的参数值。
因为一直是模拟数据构建模块,所以经常考虑适应各种数据结构的问题
无底洞。。。。。

原创粉丝点击