gpt4 book ai didi

javascript - 创建具有多个域的 d3.js 线性比例尺?

转载 作者:行者123 更新时间:2023-11-30 12:11:18 26 4
gpt4 key购买 nike

是否可以创建具有多个域的 d3 线性标尺?

例如:将域 [16,21][6,10] 中的任何值映射到 [0,100] 范围的比例尺?

在此示例中,16 将映射到 0,17 将映射到 10,18 将映射到 20,19 将映射到 30,20 将映射到 40,21 将映射到 50,6 将映射到 60,7 将映射到 70 等。谢谢

最佳答案

一种方法是根据您的标准扩展内置线性刻度。例如:

var  domain1 = [16, 21],
domain2 = [6, 10],
range = [0, 100],
midPoint = [50, 60];

function multiScale(inputNumber, domain1, domain2, range, midPoint) {
var scale1 = d3.scale.linear().domain(domain1).range([range[0],midPoint[0]]),
scale2 = d3.scale.linear().domain(domain2).range([midPoint[1], range[1]]);

return (domain1[0] <= inputNumber && inputNumber <= domain1[1]) ?
scale1(inputNumber) : scale2(inputNumber);
}

这是离散输入值的函数输出的可视化(参见 jsbin.com):

visualisation of linear scale with multiple domains

关于javascript - 创建具有多个域的 d3.js 线性比例尺?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728173/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com