d3.js: 比例尺Scale

当数据集里的元素为数字时,由于数字可大可小,我们不可能用像素去表示它们的大小的,这时候就需要用到比例尺了,相当于我们学过的y=kx这样的关系,数据集里的数据映射到比例尺里对应的数值,就有的定义域(输入)和值域(输出)

接下来用2个例子说明:

线性比例尺

let dataset = [12, 11, 13]
let scaleLinear = 
    d3.scaleLinear().domain([0, d3.max(this.dataset)]).range([0, 250]) // 线性
    console.log(scaleLinear(12)) // 230.76923076923077

 

序数比例尺

let dataset = [12, 11, 13]
let dataColor = ['#212', '#122', '234']
let scaleOrdinal = d3.scaleOrdinal().domain(this.dataset).range(this.dataColor)
scaleOrdinal(12) // #212

看到了吗?定义一个比例尺的基本操作是用d3指定比例尺的类型,定义域(domain)和值域(range),其中,线性的定义域和值域都传入一组数组,我们的数据集一般作为定义域,且用到d3.max查找出它的最大值,序数的定义域和值域都传入我们的数据集。

还有其他类型的比例尺以及比例尺的其他设置,可参考https://github.com/d3/d3/blob/master/API.md#scales-d3-scale

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值